dots2/.antidote/tools/buildman

36 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env zsh
# https://pandoc.org/demo/pandoc.1.md
# https://eddieantonio.ca/blog/2015/12/18/authoring-manpages-in-markdown-with-pandoc/
# https://jeromebelleman.gitlab.io/posts/publishing/manpages/
0=${(%):-%x}
BASEDIR=${0:a:h:h}
TMPDIR=$BASEDIR/.tmp/buildman
[[ -d $TMPDIR ]] && command rm -rf $TMPDIR
mkdir -p $TMPDIR
sedi() {
sed --version &> /dev/null && sed -i -- "$@" || sed -i "" "$@"
}
for manpage in $BASEDIR/man/*.md; do
case ${manpage:t:r} in
footer|example) continue ;;
esac
print "Building ${manpage:t:r} manpage..."
[[ -d $BASEDIR/man/man1 ]] || mkdir -p $BASEDIR/man/man1
mdfile=$TMPDIR/${manpage:t}.md
cat ${manpage} > $mdfile
print "" >> $mdfile
cat $BASEDIR/man/footer.md >> $mdfile
manfile=$BASEDIR/man/man1/${manpage:t:r}.1
pandoc --standalone --to man ${mdfile} -o $manfile
# strip pandoc version so that every manpage build doesn't need to
# result in a new commit just b/c pandoc has a minor point release.
pandoc_ver=$(pandoc -v | awk 'NR==1{print $2}')
sedi "s/Pandoc $pandoc_ver/Pandoc/g" $manfile
done