From b69bc4640a327df5995b286602061460fa238d1f Mon Sep 17 00:00:00 2001
From: Nils Dagsson Moskopp <nils@dieweltistgarnichtso.net>
Date: Sat, 23 May 2020 00:52:40 +0200
Subject: [PATCH] Refactor system diagram build to use redo

---
 reform2-handbook/all.do                |  8 ++++++++
 reform2-handbook/build.sh              | 23 +++--------------------
 reform2-handbook/system-diagram.pdf.do |  2 ++
 reform2-handbook/system-diagram.svg.do |  7 +++++++
 reform2-handbook/system.html.do        |  7 +++++++
 5 files changed, 27 insertions(+), 20 deletions(-)
 create mode 100644 reform2-handbook/all.do
 create mode 100644 reform2-handbook/system-diagram.pdf.do
 create mode 100644 reform2-handbook/system-diagram.svg.do
 create mode 100644 reform2-handbook/system.html.do

diff --git a/reform2-handbook/all.do b/reform2-handbook/all.do
new file mode 100644
index 00000000..4770d361
--- /dev/null
+++ b/reform2-handbook/all.do
@@ -0,0 +1,8 @@
+rm \
+ system.html \
+ system-diagram.svg \
+ system-diagram.pdf
+
+redo-ifchange \
+ system.html \
+ system-diagram.pdf
diff --git a/reform2-handbook/build.sh b/reform2-handbook/build.sh
index e4d7ada5..408e3777 100755
--- a/reform2-handbook/build.sh
+++ b/reform2-handbook/build.sh
@@ -1,22 +1,5 @@
-#!/bin/bash
+#!/bin/sh -eu
 
-function build {
-  dot -Tsvg system-diagram.dot -o system-diagram.svg
-  rsvg-convert -f pdf -o system-diagram.pdf system-diagram.svg
-
-  echo '<!DOCTYPE html><html lang="en"><meta charset="UTF-8">' >system.html
-  kramdown system.md >>system.html
-  echo '</html>' >>system.html
-  
-  sed -i 's/width="[^"]*"/width="100%"/' system-diagram.svg
-  sed -i 's/height="[^"]*"//' system-diagram.svg
-  sed -i 's/"Inter"/"Inter,Roboto,Helvetica,Helvetica Neue,Open Sans,Arial,sans-serif"/g' system-diagram.svg 
-}
-
-build
-
-while :
-do inotifywait -e modify -r *.dot *.md
-  build
+while redo; do
+ inotifywait -e modify -r *.dot *.md
 done
-
diff --git a/reform2-handbook/system-diagram.pdf.do b/reform2-handbook/system-diagram.pdf.do
new file mode 100644
index 00000000..221c1579
--- /dev/null
+++ b/reform2-handbook/system-diagram.pdf.do
@@ -0,0 +1,2 @@
+redo-ifchange system-diagram.svg
+rsvg-convert -f pdf -o "${3}" system-diagram.svg
diff --git a/reform2-handbook/system-diagram.svg.do b/reform2-handbook/system-diagram.svg.do
new file mode 100644
index 00000000..9ffeb268
--- /dev/null
+++ b/reform2-handbook/system-diagram.svg.do
@@ -0,0 +1,7 @@
+redo-ifchange system-diagram.dot
+
+dot -Tsvg system-diagram.dot -o "${3}"
+
+sed -i 's/width="[^"]*"/width="100%"/' "${3}"
+sed -i 's/height="[^"]*"//' "${3}"
+sed -i 's/"Inter"/"Inter,Roboto,Helvetica,Helvetica Neue,Open Sans,Arial,sans-serif"/g' "${3}"
diff --git a/reform2-handbook/system.html.do b/reform2-handbook/system.html.do
new file mode 100644
index 00000000..6fa01484
--- /dev/null
+++ b/reform2-handbook/system.html.do
@@ -0,0 +1,7 @@
+redo-ifchange \
+ system-diagram.svg \
+ system.md \
+
+echo '<!DOCTYPE html><html lang="en"><meta charset="UTF-8">'
+kramdown system.md
+echo '</html>'
-- 
GitLab