blob: f691aec08481b8f8c7a394facb6b77d86ba5af41 (
plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
#!/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.
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 \
-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 \
-b html5 -o ${output} $input
}
generate_man() {
typeset input=$1
typeset output=$2
asciidoctor -aversion-label=${name} -arevnumber=${version} \
-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
|