36 lines
1.1 KiB
Bash
Executable file
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
|