afb-api-so: adds verbosity on dlopen error
[src/app-framework-binder.git] / doc / updt.sh
index cd978e2..d0c02e7 100755 (executable)
@@ -1,31 +1,53 @@
-#!/bin/sh
+#!/bin/bash
 
-subst() {
-  awk -v pat="$1" -v rep="$(sed 's:\\:\\\\:g' $2)" '{gsub(pat,rep);gsub(pat,"\\&");print}'
+title() {
+       sed '/^[ \t]*$/d' "$1" |
+       sed '/^===/Q' |
+       sed '/^---/Q' |
+       sed 's/^# //;T;Q' |
+       sed 's/^## //;T;Q' |
+       sed '/^---/Q'
 }
 
-main='<html>
-<head>
-  <link rel="stylesheet" type="text/css" href="doc.css">
-  <meta charset="UTF-8">
-</head>
-<body>
-GENERATED-MARKDOWN-HERE
-</body>
-</html>'
+authors() {
+       git log --numstat --format='A %aN' -- "$1" |
+       awk '$1=="A"{sub(/^A /,"");a=$0; s[a]+=0; next}NF==3{s[a]+=($1+0)}END{for(a in s)print s[a]" : "a}' |
+       sort -nr |
+       sed 's/[^:]* : //' |
+       sed '1!s/^/; /' |
+       tr -d '\n'
+}
+
+dateof() {
+       local file="$1"
+       local t=$(git log -n 1 --format=%ct "$file")
+       [[ -n "$t" ]] || t=$(stat -c %Y "$file")
+       LANG= date -d @$t +"%d %B %Y"
+}
+
+meta() {
+       local file="$1"
+       local t=$(title "$file")
+       local a=$(authors "$file")
+       local d=$(dateof "$file")
+       echo "% $t"
+       echo "% $a"
+       echo "% $d"
+       cat "$file"
+}
+
+
+# make the html file for $1
+mkhtml() {
+  local x=$1
+  local h=${x%%.md}.html
+  echo updating $h from $x
+  meta "$x" |
+  pandoc --css doc.css -f markdown -t html5 --toc > "$h"
+}
 
+# apply
 for x in *.md; do
-  t=$(git log -n 1 --format=%ct $x)
-  [[ -n "$t" ]] || t=$(stat -c %Y $x)
-  d=$(LANG= date -d @$t +"%d %B %Y")
-  sed -i "s/^\(    Date: *\).*/\1$d/" $x
-  h=${x%%.md}.html
-  markdown -f toc,autolink $x > $h.toc.no
-  markdown -Tf toc,autolink $x > $h.toc.yes
-  head --bytes=-$(stat -c %s $h.toc.no) $h.toc.yes > $h.toc
-  echo "$main" |
-  subst GENERATED-MARKDOWN-HERE $h.toc.no |
-  subst TABLE-OF-CONTENT-HERE $h.toc > $h
-#  rm $h.toc*
+  mkhtml $x
 done