diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-08-03 19:00:22 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-08-03 19:00:22 +0200 |
commit | 73d09bb9b771f0fbbb60cd4f91623db8fa4709d3 (patch) | |
tree | 52879092d8c5417c3bbc04a0344e747e1ebad6f8 /common | |
parent | feat(templates/latex/academia): Support changing the language (diff) | |
download | flake-templates-73d09bb9b771f0fbbb60cd4f91623db8fa4709d3.tar.gz flake-templates-73d09bb9b771f0fbbb60cd4f91623db8fa4709d3.zip |
refactor(templates/latex/academia): Use more common files
Diffstat (limited to 'common')
-rwxr-xr-x | common/scripts/latex/build.sh | 14 | ||||
-rwxr-xr-x | common/scripts/latex/extract_text_from_all.sh | 8 | ||||
-rwxr-xr-x | common/scripts/latex/watch.sh | 70 |
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 |