#!/usr/bin/env sh
(test -d global && test -f build.sh) || {
echo >&2 "($0) run [1m$me[21m from root of [1mlibk[21m source directory"
exit 1
}
. global/common.sh
test "$out" = "" && {
say "\$out environment variable must be set to your build directory - are you running this script by hand? run [1mmake doc[21m in the root directory instead!"
exit 2
}
if ! has cmark; then
say "to generate documentation for [1mlibk[21m, install the [1mcmark[21m package and try again"
exit 3
fi
file="$1"
filename="$(basename "$file")"
stem=${filename%%.md}
mandest="$out/doc/man"
section=${section:-4}
out="$mandest/$stem.$section"
desc_rec="$(grep -m1 "^$name:" global/modules)"
if test $? -eq 0; then
desc=" - $(echo $desc_rec | cut -d: -f4)"
else
desc=""
fi
date="$(date -r"$file" "+%d %A %Y")"
mkdir -p "$mandest"
echo >"$out" ".TH ${name^^} \"$section\" \"$date\" \"hale.su libk [r$build]\" \"modules\""
echo >>"$out" ".SH NAME"
echo >>"$out" "$stem$desc"
echo >>"$out" ".SH SYNOPSIS"
dhead=$(grep -m1 -n "^# description$" "$file")
if test $? -eq 0; then
descline=$(echo "$dhead" | cut -d: -f1)
offset=1
else
descline=$(grep -m2 -n "^#" "$file" | tail -n1 | cut -d: -f1)
offset=0
fi
tail -n+2 $file | head -n$(expr $descline - 2) | cmark -t man >>"$out"
echo >>"$out" ".SH DESCRIPTION"
tail -n+$(expr $descline + $offset) "$file" | cmark -t man >> "$out"
if has gzip; then
gzip -f "$out"
out="$out.gz"
fi
say "wrote manpage for $stem to $out"