summaryrefslogtreecommitdiffstats
path: root/doc/cli.sh
diff options
context:
space:
mode:
Diffstat (limited to 'doc/cli.sh')
-rwxr-xr-xdoc/cli.sh115
1 files changed, 105 insertions, 10 deletions
diff --git a/doc/cli.sh b/doc/cli.sh
index 013f0fa..87925b5 100755
--- a/doc/cli.sh
+++ b/doc/cli.sh
@@ -12,10 +12,11 @@ function error () { info "$*"; exit 1; }
while [ $# -gt 0 ]; do
case $1 in
--clean)
- rm -f bpkg*.xhtml bpkg*.1
+ rm -f bpkg*.xhtml bpkg*.tex bpkg*.1
rm -f build2-package-manager-manual*.ps \
- build2-package-manager-manual*.pdf \
- build2-package-manager-manual.xhtml
+ build2-package-manager-manual*.pdf \
+ build2-package-manager-manual.xhtml \
+ build2-package-manager-manual.tex
exit 0
;;
*)
@@ -36,14 +37,28 @@ function compile ()
shift
done
+ for i in "${!o[@]}"; do
+ case "${o[$i]}" in
+ --output-prefix)
+ local prefix="${o[$((i+1))]}"
+ ;;
+ --output-suffix)
+ local suffix="${o[$((i+1))]}"
+ ;;
+ esac
+ done
+
cli -I .. -v project="bpkg" -v version="$version" -v date="$date" \
--include-base-last "${o[@]}" --generate-html --html-prologue-file \
- man-prologue.xhtml --html-epilogue-file man-epilogue.xhtml --html-suffix .xhtml \
+man-prologue.xhtml --html-epilogue-file man-epilogue.xhtml --html-suffix .xhtml \
--link-regex '%b([-.].+)%../../build2/doc/b$1%' \
--link-regex '%b(#.+)?%../../build2/doc/build2-build-system-manual.xhtml$1%' \
--link-regex '%bpkg(#.+)?%build2-package-manager-manual.xhtml$1%' \
../bpkg/$n.cli
+ compile_latex "$n" "$prefix" "$suffix" "a4" "${o[@]}"
+ compile_latex "$n" "$prefix" "$suffix" "letter" "${o[@]}"
+
cli -I .. -v project="bpkg" -v version="$version" -v date="$date" \
--include-base-last "${o[@]}" --generate-man --man-prologue-file \
man-prologue.1 --man-epilogue-file man-epilogue.1 --man-suffix .1 \
@@ -52,6 +67,44 @@ man-prologue.1 --man-epilogue-file man-epilogue.1 --man-suffix .1 \
../bpkg/$n.cli
}
+function compile_latex () # <name> <prefix> <suffix> <paper> <o>
+{
+ local n=$1; shift
+ local prefix=$1; shift
+ local suffix=$1; shift
+ local paper=$1; shift
+ local o=("$@")
+
+ cli -I .. -v project="bpkg" -v version="$version" -v date="$date" \
+--include-base-last "${o[@]}" --generate-latex --latex-prologue-file \
+man-prologue.tex --latex-epilogue-file man-epilogue.tex \
+--latex-section-map "0=chapter*" --latex-section-map "1=chapter*" \
+--latex-section-map "H=part*" --latex-section-map "h=section*" \
+--latex-section-map "2=subsection*" \
+--link-regex '%bpkg(#.+)?%build2-package-manager-manual-'"$paper"'.pdf$1%' \
+--link-regex '%bpkg([-.].+)?\.pdf%bpkg$1-'"$paper"'.pdf%' \
+--link-regex '%b([-.].+)%../../build2/doc/b-'"$paper"'$1%' \
+--link-regex '%b(#.+)?%../../build2/doc/build2-build-system-manual-'"$paper"'.pdf$1%' \
+../bpkg/$n.cli
+
+ run_pdflatex "$prefix$n$suffix" "$paper"
+}
+
+function run_pdflatex () # <name> <paper>
+{
+ local n="$1"
+ local paper="$2"
+
+ if [ "$paper" == "letter" ]; then
+ sed -i 's/a4paper/letterpaper/' "$n.tex"
+ fi
+
+ pdflatex -output-format dvi -jobname="$n-$paper" "$n"
+ dvips "$n-$paper.dvi"
+ pdflatex -output-format pdf -jobname="$n-$paper" "$n"
+ rm -f "$n-$paper".{aux,dvi,log,out,toc}
+}
+
o="--output-prefix bpkg- --class-doc bpkg::common_options=short"
# A few special cases.
@@ -73,7 +126,25 @@ done
# Manual.
#
-cli -I .. \
+
+function compile_doc () # <file> <prefix> <suffix>
+{
+ local f="$1"
+ local prefix="$2"
+ local suffix="$3"
+
+ compile_html_doc "$f" "$prefix" "$suffix"
+ compile_latex_doc "$f" "$prefix" "$suffix" "a4"
+ compile_latex_doc "$f" "$prefix" "$suffix" "letter"
+}
+
+function compile_html_doc () # <file> <prefix> <suffix>
+{
+ local f="$1"
+ local prefix="$2"
+ local suffix="$3"
+
+ cli -I .. \
-v version="$(echo "$version" | sed -e 's/^\([^.]*\.[^.]*\).*/\1/')" \
-v date="$date" \
--generate-html --html-suffix .xhtml \
@@ -81,10 +152,34 @@ cli -I .. \
--html-epilogue-file doc-epilogue.xhtml \
--link-regex '%b([-.].+)%../../build2/doc/b$1%' \
--link-regex '%b(#.+)?%../../build2/doc/build2-build-system-manual.xhtml$1%' \
---output-prefix build2-package-manager- manual.cli
+--output-prefix "$prefix" \
+--output-suffix "$suffix" \
+"$f"
+}
+
+function compile_latex_doc () # <file> <prefix> <suffix> <paper>
+{
+ local f="$1"
+ local prefix="$2"
+ local suffix="$3"
+ local paper="$4"
-html2ps -f doc.html2ps:a4.html2ps -o build2-package-manager-manual-a4.ps build2-package-manager-manual.xhtml
-ps2pdf14 -sPAPERSIZE=a4 -dOptimize=true -dEmbedAllFonts=true build2-package-manager-manual-a4.ps build2-package-manager-manual-a4.pdf
+ cli -I .. \
+-v version="$(echo "$version" | sed -e 's/^\([^.]*\.[^.]*\).*/\1/')" \
+-v date="$date" \
+--generate-latex \
+--latex-prologue-file doc-prologue.tex \
+--latex-epilogue-file doc-epilogue.tex \
+--link-regex '%bpkg([-.].+)?\.pdf%bpkg$1-'"$paper"'.pdf%' \
+--link-regex '%b([-.].+)%../../build2/doc/b-'"$paper"'$1%' \
+--link-regex '%b(#.+)?%../../build2/doc/build2-build-system-manual-'"$paper"'.pdf$1%' \
+--output-prefix "$prefix" \
+--output-suffix "$suffix" \
+"$f"
+
+ local n="$2$(basename -s .cli $1)$3"
+
+ run_pdflatex "$n" "$paper"
+}
-html2ps -f doc.html2ps:letter.html2ps -o build2-package-manager-manual-letter.ps build2-package-manager-manual.xhtml
-ps2pdf14 -sPAPERSIZE=letter -dOptimize=true -dEmbedAllFonts=true build2-package-manager-manual-letter.ps build2-package-manager-manual-letter.pdf
+compile_doc manual.cli 'build2-package-manager-'