-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate-doc
executable file
·40 lines (34 loc) · 1.4 KB
/
generate-doc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
MARKDOWN_DIR=md
MANPAGES_DIR=man
MANPAGES_SECTION=1
MD_CONVERTER_BIN=go-md2man
_printf(){
printf "${@}" >&2
}
# Check for go-md2man
which $MD_CONVERTER_BIN > /dev/null
if [ "$?" != "0" ]
then
_printf "\033[01;35mError: you need \033[00m%s\033[01;35m to generate documentation, exiting now.\033[00m\n" $MD_CONVERTER_BIN
_printf "On ubuntu, use \n\033[01;37m%s %s\033[00m \ncommand to install it.\n" "sudo apt-get install" $MD_CONVERTER_BIN
exit 1
fi
_printf "Iterating over %s/ directory to find markdown files...\n" $MARKDOWN_DIR
for f in $(find $MARKDOWN_DIR -type f | awk '/\.md/')
do
MANPAGES_SECTION=`basename $f .md`
MANPAGE_NAME=$(basename $(dirname `realpath $f`))
OUTPUT_DIR="$MANPAGES_DIR/man${MANPAGES_SECTION}"
if [ ! -d "${OUTPUT_DIR}" ]
then
_printf "Creating \033[01;32m%s\033[00m dir..." ${OUTPUT_DIR}
mkdir -p ${OUTPUT_DIR} >/dev/null 2>&1
[ "$?" -eq "0" ] && _printf "\033[01;32m%s\033[00m" "OK"
echo
fi
_printf " - Executing \033[01;37m%s --in %s/index.md --out %s/man%s/%s.%s.gz\033[00m " $MD_CONVERTER_BIN $f $MANPAGES_DIR ${MANPAGES_SECTION} ${MANPAGE_NAME} ${MANPAGES_SECTION}
$MD_CONVERTER_BIN --in $f --out /dev/stdout | gzip > $MANPAGES_DIR/man${MANPAGES_SECTION}/${MANPAGE_NAME}.${MANPAGES_SECTION}.gz
[ "$?" -eq "0" ] && _printf "\033[01;32m%s\033[00m\n" "OK"
done
_printf "Done generating manpages.\n"