summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Pignolet <matthieu@puffer.fish>2025-05-11 19:09:35 +0400
committerMatthieu Pignolet <matthieu@puffer.fish>2025-05-11 19:09:35 +0400
commitbc89c7f15cac40852d5e906f30c2036cd47585e9 (patch)
treec7903165617627154fcc1523f83fbcba8111aa70
parentaeceac55bd3bf1fe6039ebcd8281619828b73472 (diff)
feat: add watch functionality
-rw-r--r--Makefile6
-rwxr-xr-xwatch.sh17
2 files changed, 22 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index ab5803b..1671523 100644
--- a/Makefile
+++ b/Makefile
@@ -18,4 +18,8 @@ $(NAMES): $(%:.pdf=.tex)
clean:
@rm *.pdf
@rm -r /tmp/*-sts-build
-.PHONY: all clean \ No newline at end of file
+
+watch: watch.sh
+ ./watch.sh
+
+.PHONY: all clean watch \ No newline at end of file
diff --git a/watch.sh b/watch.sh
new file mode 100755
index 0000000..c591037
--- /dev/null
+++ b/watch.sh
@@ -0,0 +1,17 @@
+#!/bin/env bash
+
+# We first generate the PDFs from the start
+make all
+
+# We then listen for changes
+inotifywait -r -m -e modify . |
+ while read file_path file_event file_name; do
+ extension="${file_name##*.}"
+ # If the changed file is a TEX file
+ if [[ "$extension" == "tex" ]]
+ then
+ name="${file_name%%.*}"
+ # We call the make target in order to build it
+ make "$name.pdf"
+ fi
+ done