diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-02-25 17:56:55 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-02-25 17:56:55 -0800 |
| commit | 87795b46f2bc732bd11067805709161bdc00d6b6 (patch) | |
| tree | 892f3bcea1a14df5dde8dba413d394f5ccb0a0e0 /docs/man/preview.sh | |
| parent | 545942f7ace7cde8a1b8a6a5289cecc185b08fbc (diff) | |
| download | nng-87795b46f2bc732bd11067805709161bdc00d6b6.tar.gz nng-87795b46f2bc732bd11067805709161bdc00d6b6.tar.bz2 nng-87795b46f2bc732bd11067805709161bdc00d6b6.zip | |
More man page reorganization.
Man pages need special handling, and we can have other kinds of documentation
like initial starting guides, etc., which would have different processing
applied. So lets move them off into their own directory.
Diffstat (limited to 'docs/man/preview.sh')
| -rwxr-xr-x | docs/man/preview.sh | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/docs/man/preview.sh b/docs/man/preview.sh new file mode 100755 index 00000000..73f17aaa --- /dev/null +++ b/docs/man/preview.sh @@ -0,0 +1,128 @@ +#!/bin/bash +# +# Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> +# Copyright 2018 Capitar IT Group BV <info@capitar.com> +# This software is supplied under the terms of the MIT License, a +# copy of which should be located in the distribution where this +# file was obtained (LICENSE.txt). A copy of the license may also be +# found online at https://opensource.org/licenses/MIT. +# + +# This script is used to preview in HTML or man format, the documentation. +# I use it during development, YMMV. It is probably completely useless +# on Windows. + +MANSOURCE="NNG" +MANMANUAL="NNG Reference Manual" + +case $(uname -s) in +Darwin) + OPEN=open + MAN=man + ;; +Linux) + OPEN=xdg-open + MAN=man + ;; +*) + echo "No idea how to preview on this system." + exit 2 +esac + +if [ -n "$DISPLAY" ] +then + style=html +else + style=man +fi + +while getopts cs: arg +do + case "${arg}" in + c) cleanup=yes;; + s) style=$OPTARG;; + ?) echo "Usage: $0 [-s <style>][-c] <files...>"; exit 1 ;; + esac +done +shift $(( $OPTIND - 1 )) + +case $style in +html) + suffix=.html + ;; +ps) + suffix=.ps + ;; +pdf) + suffix=.pdf + ;; +man) + suffix=.man + OPEN=${MAN} + ;; +*) + echo "Unknown style, choose one of [html|man|pdf|ps]." 1>&2 + exit 2 +esac + +version=$(cat $(dirname $0)/../.version) +name=nng + +generate_pdf() { + typeset input=$1 + typeset output=$2 + asciidoctor-pdf -aversion-label=${name} -arevnumber=${version} \ + -asource-highlighter=pygments -aicons=font \ + -a mansource="${MANSOURCE}" -a manmanual="${MANMANUAL}" \ + -b pdf -a notitle -d article -o ${output} $input +} + +generate_html() { + typeset input=$1 + typeset output=$2 + asciidoctor -atoc=left -aversion-label=${name} -arevnumber=${version} \ + -aicons=font -asource-highlighter=pygments \ + -a mansource="${MANSOURCE}" -a manmanual="${MANMANUAL}" \ + -b html5 -d manpage -o ${output} $input +} + +generate_man() { + typeset input=$1 + typeset output=$2 + asciidoctor -aversion-label=${name} -arevnumber=${version} \ + -a mansource="${MANSOURCE}" -a manmanual="${MANMANUAL}" \ + -d manpage -b manpage -o ${output} $input +} + +generate_ps() { + typeset input=$1 + typeset output=$2 + manpage=${2%.ps}.man + generate_man $1 $manpage + if [ $? -eq 0 ]; then + man -t $manpage > $output + fi +} + + +if [ -n "${cleanup}" ] +then + tempdir=$(mktemp -d) + clean() { + sleep 1 + rm -rf ${tempdir} + } + trap clean 0 + mkdir -p ${tempdir} +else + tempdir=/tmp/${LOGNAME}.${name}.preview + mkdir -p ${tempdir} +fi + +for input in "$@"; do + base=$(basename $input) + base=${base%.adoc} + output=${tempdir}/${base}${suffix} + generate_${style} $input $output + $OPEN $output +done |
