home · contact · privacy
Re-write date handling, remove dependency on filesystem lastmod dates.
[redo-blog] / processor / metadata / default.intermediate.do
index a09d4b2e5022c884a2fe61832d205940582501fa..bf87309575ba431c31d95327d762bbe831b89671 100644 (file)
@@ -1,11 +1,14 @@
 #!/bin/sh
 
+# Pull in dependencies.
 template=intermediate.pandoc_tmpl
-uuidfile="${1%.intermediate}.uuid"
-redo-ifchange "$uuidfile"
+meta_file="${1%.intermediate}.automatic_metadata"
+redo-ifchange "$meta_file"
 redo-ifchange "$template"
 mdfile="../${1%.intermediate}.md"
 rstfile="../${1%.intermediate}.rst"
+
+# Build intermediate file.
 if [ -f "$rstfile" ]; then
   redo-ifchange "$rstfile"
   pandoc -f rst --template="$template" --mathml -t html5 "$rstfile" --base-header-level=2 > "$3"
@@ -13,3 +16,13 @@ elif [ -f "$mdfile" ]; then
   redo-ifchange "$mdfile"
   pandoc -f markdown --template="$template" --mathml -t html5 "$mdfile" --base-header-level=2 > "$3"
 fi
+
+# Update meta file if appropriate.
+md5_new=$(md5sum "$3" | cut -d ' ' -f 1)
+md5_old=$(cat "$meta_file" | sed -n '3p')
+if [ ! "$md5_new" = "$md5_old" ]; then
+  new_date=$(date -u "+%s")
+  sed -i '1,2!d' "$meta_file"
+  echo "$md5_new" >> "$meta_file"
+  echo "$new_date" >> "$meta_file"
+fi