about summary refs log tree commit diff stats
path: root/build/latex/presentation/watch.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build/latex/presentation/watch.sh')
-rwxr-xr-xbuild/latex/presentation/watch.sh70
1 files changed, 70 insertions, 0 deletions
diff --git a/build/latex/presentation/watch.sh b/build/latex/presentation/watch.sh
new file mode 100755
index 0000000..e5147f2
--- /dev/null
+++ b/build/latex/presentation/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