summaryrefslogtreecommitdiff
path: root/build-member.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build-member.sh')
-rwxr-xr-xbuild-member.sh66
1 files changed, 66 insertions, 0 deletions
diff --git a/build-member.sh b/build-member.sh
new file mode 100755
index 0000000..1dbccc3
--- /dev/null
+++ b/build-member.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+set -eu
+
+input=$1
+output=$2
+
+firstname ()
+{
+ local -r fullname=$1
+ local name=${fullname%% *}
+ echo ${name,}
+}
+
+generate-parameters ()
+{
+ read fullname
+
+ cat <<EOF
+title='${fullname}'
+stylesheets=(membre)
+transforms=("\$(transform-li-dropdown-current-a quatuor)"
+ "\$(transform-li-current-a $(firstname "${fullname}"))")
+EOF
+}
+
+generate-main ()
+{
+ read fullname
+ read h1
+ read dt
+ local -r name=$(firstname "${fullname}")
+
+ cat <<EOF
+<main>
+ <div id="bio" style="${h1}; ${dt}">
+ <h1>${fullname}</h1>
+EOF
+
+ while read line
+ do
+ if ! [[ ${line} =~ ([^:?]+[:?] )(.+) ]]
+ then
+ >&2 echo "Invalid line: ${line}"
+ fi
+
+ cat <<EOF
+ <dl>
+ <dt>${BASH_REMATCH[1]}</dt>
+ <dd>${BASH_REMATCH[2]}</dd>
+ </dl>
+EOF
+ done
+
+ cat <<EOF
+ </div>
+ <div id="photo">
+ <img src="images/${name}/portrait.png" style="background-image: url(images/${name}/bg.jpg)">
+ </div>
+</main>
+EOF
+}
+
+./build.sh <(generate-main < "${input}") \
+ <(generate-parameters < "${input}") \
+ "${output}"