aboutsummaryrefslogtreecommitdiffstats
path: root/common/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'common/scripts')
-rwxr-xr-xcommon/scripts/latex/build.sh14
-rwxr-xr-xcommon/scripts/latex/extract_text_from_all.sh8
-rwxr-xr-xcommon/scripts/latex/watch.sh70
3 files changed, 92 insertions, 0 deletions
diff --git a/common/scripts/latex/build.sh b/common/scripts/latex/build.sh
new file mode 100755
index 0000000..1206ee7
--- /dev/null
+++ b/common/scripts/latex/build.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env sh
+
+# if no parameter is given, use 'dst' as destination directory
+if [ -z "$1" ]; then
+ dst=build
+else
+ dst="$1"
+fi
+
+# find all directories which are not the destination dir or inside it
+find . -type d -not -name "$dst" -not -path "./$dst/*" -printf '%P\n' | while IFS= read -r dir; do
+ mkdir --parents "$dst/$dir"
+done
+latexmk -outdir="$dst" -file-line-error -pdflatex -recorder "./%INIT_APPLICATION_NAME.tex"
diff --git a/common/scripts/latex/extract_text_from_all.sh b/common/scripts/latex/extract_text_from_all.sh
new file mode 100755
index 0000000..11b2ac4
--- /dev/null
+++ b/common/scripts/latex/extract_text_from_all.sh
@@ -0,0 +1,8 @@
+#! /usr/bin/env sh
+
+grep 'INPUT ./' ./build/main.fls | uniq | sed 's/INPUT //' | while read -r file; do
+ if ! [ "$(basename "$file")" = preamble.tex ] && ! [ "$(basename "$file")" = gymnasium.png ]; then
+ printf "\n%% Filename: %s\n" "$file"
+ grep -v '^\s*%' "$file"
+ fi
+done
diff --git a/common/scripts/latex/watch.sh b/common/scripts/latex/watch.sh
new file mode 100755
index 0000000..e5147f2
--- /dev/null
+++ b/common/scripts/latex/watch.sh
@@ -0,0 +1,70 @@
+#!/usr/bin/env sh
+
+help() {
+ cat <<EOF
+An simple watch script, useful to see the changes in the document as it evolves.
+
+USAGE:
+ watch.sh [OPTIONS] [COMMAND]
+
+OPTIONS:
+ --help | -h
+ Display this help and exit.
+
+ --open [READER] | -o [READER]
+ Open the build PDF in READER before waiting for changes.
+ READER defaults to the READER environment variable or
+ 'zathura' if the env variable is unset.
+ --sleeptime [T] | -s [T]
+ How long to sleep between each build attempt in seconds. The
+ time defaults to 10 seconds.
+ARGUMENTS:
+ READER := [[echo "\${READER-zathura}"]]
+ The reader to open the build PDF with.
+
+ T := [[seq 1 100]]
+ The time to sleep between each build attempt.
+EOF
+}
+
+reader=""
+time="10"
+for arg in "$@"; do
+ case "$arg" in
+ "--help" | "-h")
+ help
+ exit 0
+ ;;
+
+ "--open" | "-o")
+ shift 1
+ reader="$1"
+ if [ -z "$reader" ]; then
+ reader="${READER-zathura}"
+ else
+ shift 1
+ fi
+ ;;
+
+ "--sleeptime" | "-s")
+ shift 1
+ time="$1"
+ if [ -z "$time" ]; then
+ time=10
+ else
+ shift 1
+ fi
+ ;;
+ *)
+ echo "'$1' is not a recognized option! See '--help' for more detail." 1>&2
+ exit 1
+ ;;
+ esac
+done
+
+[ -n "$reader" ] && "$reader" ./build/%INIT_APPLICATION_NAME.pdf &
+
+while true; do
+ ./build.sh
+ sleep "$time"
+done