From a5bde9ec7d31db0c34e3bde86fb40b6528a654a1 Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Sun, 12 Dec 2021 12:43:21 -0500
Subject: [PATCH] [docs] global: add optional arguments to docs generation
This is useful for packagers who may want to generate the user manual
but not the internals documentation.
---
generateDocumentation.sh | 138 +++++++++++++++++++++++----------------
1 file changed, 83 insertions(+), 55 deletions(-)
diff --git a/generateDocumentation.sh b/generateDocumentation.sh
index 9457d1d..5753f9f 100755
--- a/generateDocumentation.sh
+++ b/generateDocumentation.sh
@@ -3,59 +3,87 @@
set -o nounset
set -o errexit
-doxygen docs/dev/Doxyfile
-cp docs/dev/*png Documentation/html/
-cd Documentation/latex/
-make
-cd ../..
-mkdir -p manual/dev/html
-mv Documentation/html manual/dev/html
-mv Documentation/latex/refman.pdf manual/dev/
-rm -r Documentation
+PROG="$0"
+USER=0
+DEV=0
-cd docs/user
-sed -n "3p" intro.md > User_Manual.md
-tail -n +7 intro.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" installation.md >> User_Manual.md
-tail -n +7 installation.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" example.md >> User_Manual.md
-tail -n +7 example.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" dataPreparation.md >> User_Manual.md
-tail -n +7 dataPreparation.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" timeline.md >> User_Manual.md
-tail -n +7 timeline.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" interactiveTracking.md >> User_Manual.md
-tail -n +7 interactiveTracking.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" batchTracking.md >> User_Manual.md
-tail -n +7 batchTracking.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" trackingInspector.md >> User_Manual.md
-tail -n +7 trackingInspector.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" trackingCli.md >> User_Manual.md
-tail -n +7 trackingCli.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" trackingParameters.md >> User_Manual.md
-tail -n +7 trackingParameters.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" parametersSelection.md >> User_Manual.md
-tail -n +7 parametersSelection.md >> User_Manual.md
-echo -e "\n" >> User_Manual.md
-sed -n "3p" dataOutput.md >> User_Manual.md
-tail -n +7 dataOutput.md >> User_Manual.md
-sed -i "s/title:/#/g" User_Manual.md
-mkdir -p ../../manual/user/html
-pandoc User_Manual.md -f markdown --mathjax --toc -t html5 -c css/style.css -s -o user_manual.html
-cp -r css ../../manual/user/html
-cp -r assets ../../manual/user/html
-mv user_manual.html ../../manual/user/html
-pandoc ../../manual/user/html/user_manual.html -o ../../manual/user/user_manual.pdf
-rm User_Manual.md
-cd ../..
-tar -czvf manual.tar.gz manual/
+usage()
+{
+ cat <<EOF
+Usage: ${PROG} [TYPE]
+
+TYPE may be "user", "dev", or "all" (default: "all").
+EOF
+}
+
+if (( $# > 1 )); then usage; exit 1; fi
+case "${1-all}" in
+ -h,--help) usage; exit 0 ;;
+ user) USER=1 ;;
+ dev) DEV=1 ;;
+ all) USER=1; DEV=1 ;;
+ *) usage; exit 1 ;;
+esac
+
+if [[ "${DEV}" != 0 ]]
+then
+ doxygen docs/dev/Doxyfile
+ cp docs/dev/*png Documentation/html/
+ cd Documentation/latex/
+ make
+ cd ../..
+ mkdir -p manual/dev/html
+ mv Documentation/html manual/dev/html
+ mv Documentation/latex/refman.pdf manual/dev/
+ rm -r Documentation
+fi
+
+if [[ "${USER}" != 0 ]]
+then
+ cd docs/user
+ sed -n "3p" intro.md > User_Manual.md
+ tail -n +7 intro.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" installation.md >> User_Manual.md
+ tail -n +7 installation.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" example.md >> User_Manual.md
+ tail -n +7 example.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" dataPreparation.md >> User_Manual.md
+ tail -n +7 dataPreparation.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" timeline.md >> User_Manual.md
+ tail -n +7 timeline.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" interactiveTracking.md >> User_Manual.md
+ tail -n +7 interactiveTracking.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" batchTracking.md >> User_Manual.md
+ tail -n +7 batchTracking.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" trackingInspector.md >> User_Manual.md
+ tail -n +7 trackingInspector.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" trackingCli.md >> User_Manual.md
+ tail -n +7 trackingCli.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" trackingParameters.md >> User_Manual.md
+ tail -n +7 trackingParameters.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" parametersSelection.md >> User_Manual.md
+ tail -n +7 parametersSelection.md >> User_Manual.md
+ echo -e "\n" >> User_Manual.md
+ sed -n "3p" dataOutput.md >> User_Manual.md
+ tail -n +7 dataOutput.md >> User_Manual.md
+ sed -i "s/title:/#/g" User_Manual.md
+ mkdir -p ../../manual/user/html
+ pandoc User_Manual.md -f markdown --mathjax --toc -t html5 -c css/style.css -s -o user_manual.html
+ cp -r css ../../manual/user/html
+ cp -r assets ../../manual/user/html
+ mv user_manual.html ../../manual/user/html
+ pandoc ../../manual/user/html/user_manual.html -o ../../manual/user/user_manual.pdf
+ rm User_Manual.md
+ cd ../..
+ tar -czvf manual.tar.gz manual/
+fi