From 9cad508b5c98ca1029460807249cafb712f28f1e Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sun, 29 Oct 2023 22:39:48 +0100 Subject: Migrate the site to GSP and a Makefile --- build | 524 ------------------------------------------------------------------ 1 file changed, 524 deletions(-) delete mode 100755 build (limited to 'build') diff --git a/build b/build deleted file mode 100755 index 030072e..0000000 --- a/build +++ /dev/null @@ -1,524 +0,0 @@ -#!/bin/sh -# vi: ts=4 sw=4 - -set -e - -#require fsub gawk pee sponge - -PATH="$PATH:scripts" - -rm -rf out/* -mkdir -p out -cp -r src/* out -[ -d fonts ] && cp -r fonts out - -compile_for_lang() { - sd=src/$1 - od=out/$1 - - case $lang in - en) hlang=en-US ;; - pt) hlang=pt-BR ;; - *) hlang=$1 ;; - esac - - xfsub '' src/language-selector.html \ - $od/nav-bar.html - sed -i "\\..d" $od/nav-bar.html - - mkdir $od/changelog - changelog-dates.sed out/changelog.html >$od/changelog/index.html - - find $od -name '*.html' \ - | pee cat "xargs -- sed -i ' - s|href=/XX|href=/$1| - s||| - '" \ - | while read file; do - xfsub '' $od/nav-bar.html $file - xfsub '' $od/euro/coin-nav.html $file - xfsub '' $od/euro/note-nav.html $file - xfsub '' $od/euro/coin-denom-nav.html $file - xfsub '' $od/footer.html $file - xfsub '' $od/table-key.html $file - done - - for file in `find $od -name 'index.html'`; do - base=${file#out} - base=${base%/index.html} - sed -Ei " - /|s|([^<]*)|
\1
| - " $file - done - - sed -Ei ' - //,//d - //d - ' $od/euro/notes.template.html $od/euro/tnotes.template.html - sed -Ei ' - //,//d - //d - ' $od/euro/coins.template.html $od/euro/coins-denom.template.html - - nod=$od/euro/tn - mkdir -p $nod - cp $od/euro/tnotes.template.html $nod/index.html - sed -Ei ' - /|s|([^<]*)|
\1
| - ' $nod/index.html - gawk -v lang=$1 ' - @include "scripts/getcls.awk" - - function fmt(n) - { - return lang ~ /(en|ga|mt|nl)/ ? "€" n : n " €" - } - - BEGIN { - FS = "\t" - } - - $1 == "TN" { - i++ - col[i][0] = $2 - col[i][1] = $3 - col[i][2] = $4 - } - - END { - for (i = 1; i <= length(col); i++) { - printf \ - "%s"\ - "%s\n", - fmt(col[i][0]), getcls(col[i][2]), col[i][1] - } - print "MARKER LOL" - } - ' data/notes \ - | last-of-design.sed \ - | xfsub '' - $nod/index.html - - grep -Eo '^[A-Z]{2}' data/coins \ - | uniq \ - | gawk -v lang=$1 ' - function bilingual_sort(i1, v1, i2, v2, f) - { - print v1 ":" v2 |& CMD - CMD |& getline f - - return f == v1 ? -1 : +1 - } - - BEGIN { - while (getline < ("data/country-info." lang)) { - split($0, a, "\t") - map[a[1]] = a[3] - } - } - - { countries[$0] = map[$0] } - - END { - locale = lang == "pt" \ - ? "pt_BR.UTF-8" \ - : lang "_" toupper(lang) ".UTF-8" - - CMD = "LC_ALL=" locale " ./bilingual_sort" - PROCINFO["sorted_in"] = "bilingual_sort" - - print "" - for (code in countries) { - i++ - if (i % 4 == 1) - printf "" - printf "", tolower(code), - countries[code] - if (i % 4 == 0) - print "" - } - print "
%s
" - - close(CMD) - } - ' \ - | xfsub '' - $od/euro/index.html - - for CC in `grep -Eo '^[A-Z]{2}' data/coins | uniq`; do - cc=`echo $CC | tr A-Z a-z` - nod=$od/euro/$cc - mkdir -p $nod - cp $od/euro/coins.template.html $nod/index.html - sed -i " - /|s|$CC|
$CC
| - " $nod/index.html - grep -m1 "^$CC" data/country-info.$1 \ - | cut -f2 \ - | xfsub '' - $nod/index.html - sed -Ei " - //d - //,//d - //d - //,//d - " $nod/index.html - - gawk -v CC=$CC ' - @include "scripts/getcls.awk" - - FILENAME != "data/coins" { - split($0, a, "\t") - en2lang[a[1]] = a[2] - } - - FILENAME == "data/coins" && $1 == CC && /.. start/ { - sub(/^.. start/, ""); sub(/^ /, "") - printf "%s\n", - en2lang[$0] - next - } - - FILENAME == "data/coins" && $1 == CC { - y = $10 - if ($11 != "") { - y_ = $11 - for (i = 12; i <= NF; i++) - y_ = y_ " " $i - } - printf "" - for (i = 2; i <= 9; i++) { - # Greece 2002 needs special handling - if (CC == "GR" && $10 == 2002 && $11 == "MM") { - if (i <= 5) - y_ = "F" - else if (i <= 7) - y_ = "E" - else - y_ = "S" - } - - if ($11 != "") { - printf "%s %s", - getcls($i), y, y_ - } else - printf "%s", getcls($i), y - } - print "" - } - - END { print "MARKER LOL" } - ' data/sections.$1 data/coins \ - | last-of-design.sed \ - | sed -E 's|()[^<]*([^<]*)?()|\1 \3|g' \ - | xfsub '' - $nod/index.html - - gawk -v CC=$CC ' - @include "scripts/getcls.awk" - - $1 == CC { - split($0, a, "\t") - $0 = a[1] - - n = 2 - y = $2 - - if (getcls($3) == "error") { - n = 3 - printf "%s %s", y, $3 - } else - printf "%s", y - - for (i = 1; i <= NF - n; i++) { - printf "%s", - getcls($(i + n)), a[i + 1] - } - print "" - } - - END { print "MARKER LOL" } - ' data/ccs \ - | colspan.sed \ - | grep -Fv 'MARKER LOL' \ - | xfsub '' - $nod/index.html - - gawk -v CC=$CC -v lang=$1 ' - BEGIN { - FS = "\t" - } - - $1 == CC { - if (lang !~ /(en|ga|mt|nl)/) { - sub(/\./, ",", $3) - sub(/€/, "", $3) - sub(/$/, " €", $3) - } - - printf "%s%s%s", - $2, $3, $4 - } - ' data/errors | xfsub '' - $nod/index.html - done - - for denom in `grep -Eo '^[0-9]+' data/notes | uniq`; do - nod=$od/euro/${denom}e - mkdir -p $nod - cp $od/euro/notes.template.html $nod/index.html - sed -Ei " - /|s|([^<]*)|
\\1
| - " $nod/index.html - sed -i "s//$denom/" $nod/index.html - - sed -Ei " - //d - //,//d - //d - //,//d - " $nod/index.html - - gawk -v denom=$denom -v lang=$1 ' - @include "scripts/bilingual_sort.awk" - @include "scripts/getcls.awk" - - BEGIN { FS = "\t" } - - FILENAME == "data/country-info." lang { cc2name[$1] = $3 } - - FILENAME == "data/note-info" && length == 0 { section++; next } - FILENAME == "data/note-info" && section == 0 { cc2c[$1] = $2 } - FILENAME == "data/note-info" && section == 1 { ab2l[$1] = $2 } - - FILENAME == "data/notes" && $1 == denom && $2 == "2002" { - i++ - col[i][0] = $3 - col[i][1] = $4 - } - - END { - locale = lang == "pt" \ - ? "pt_BR.UTF-8" \ - : lang "_" toupper(lang) ".UTF-8" - - CMD = "LC_ALL=" locale " ./bilingual_sort" - asort(col, col, "bilingual_sort") - close(CMD) - - for (i = 1; i <= 3; i++) { - if (i == 3 && denom == 5) - break - - if (i == 1) - sig = "Wim Duisenberg" - else if (i == 2) - sig = "Jean-Claude Trichet" - else if (i == 3) - sig = "Mario Draghi" - print ""sig"" - - c = 1 - - for (j = 1; j <= length(col); j++) { - split(col[j][1], s, " ") - if (s[i] == "/") - continue - - if ((c - 1) % 4 == 0) - printf "" - - printf "", getcls(s[i]) - printf "%s (%s)", cc2name[col[j][0]], cc2c[col[j][0]] - printf "" - - if (c % 4 == 0) - print "" - c++ - } - if ((c - 2) % 4 != 3) - print "" - } - print "MARKER LOL" - } - ' data/country-info.$1 data/note-info data/notes \ - | colspan.sed \ - | last-of-design.sed \ - | xfsub '' - $nod/index.html - - [ $denom -eq 500 ] && continue - - gawk -v denom=$denom -v lang=$1 ' - @include "scripts/bilingual_sort.awk" - @include "scripts/getcls.awk" - - BEGIN { FS = "\t" } - - FILENAME == "data/country-info." lang { cc2name[$1] = $3 } - - FILENAME == "data/note-info" && length == 0 { section++; next } - FILENAME == "data/note-info" && section == 0 { cc2c[$1] = $2 } - FILENAME == "data/note-info" && section == 1 { ab2l[$1] = $2 } - - FILENAME == "data/notes" && $1 == denom && $2 == "Europa" { - i++ - col[i][0] = $3 - col[i][1] = $4 - } - - END { - locale = lang == "pt" \ - ? "pt_BR.UTF-8" \ - : lang "_" toupper(lang) ".UTF-8" - - CMD = "LC_ALL=" locale " ./bilingual_sort" - asort(col, col, "bilingual_sort") - close(CMD) - - for (i = 1; i <= 2; i++) { - if (i == 1) - sig = "Mario Draghi" - else if (i == 2) - sig = "Christine Lagarde" - print ""sig"" - - c = 0 - - for (j = 1; j <= length(col); j++) { - split(col[j][1], s, " ") - if (s[i] == "/") - continue - - if (c % 4 == 0) - printf "" - - printf "", getcls(s[i]) - printf "%s (%s)", cc2name[col[j][0]], cc2c[col[j][0]] - printf "" - - if (c % 4 == 3 && j < length(col)) - print "" - if (c % 4 != 3 || j != length(col)) - c++ - } - if ((c - 1) % 4 != 3) - print "" - } - print "MARKER LOL" - } - ' data/country-info.$lang data/note-info data/notes \ - | colspan.sed \ - | last-of-design.sed \ - | xfsub '' - $nod/index.html - done - - # We will need this later… - { for CC in `grep -Eo '^[A-Z]{2}' data/coins | uniq`; do - grep "^$CC " data/country-info.$1 | cut -f1,3 - done } | sort -k2 >data/tmp-data.$1 - - - for denom in 1 2 5 10 20 50 100 200; do - if [ $denom -eq 100 -o $denom -eq 200 ]; then - denom_=${denom%00}e - else - denom_=${denom}c - fi - nod=$od/euro/$denom_ - mkdir -p $nod - cp $od/euro/coins-denom.template.html $nod/index.html - sed -Ei " - /|s|([^<]*)|
\\1
| - " $nod/index.html - case $1 in - en) - sep=. - ;; - *) - sep=, - ;; - esac - if [ $denom -eq 100 -o $denom -eq 200 ]; then - sed -i "s//${denom%00}${sep}00/" $nod/index.html - else - sed -i "s//0$sep`printf '%02d' $denom`/" $nod/index.html - fi - - for CC in `cut -f1 data/tmp-data.$1`; do - gawk -v CC=$CC -v lang=$1 -v denom=$denom ' - @include "scripts/getcls.awk" - - FILENAME ~ /data\/tmp-data\.[a-z]{2}/ && $1 == CC { - gsub(/^.../, "") - print "
" - print "
" - print "" - print "" - print "" - } - - $1 == CC && /.. start/ { - sub(/.. start/, "") - printf "\n", $0 - next - } - - $1 == CC { - y = $10 - if ($11 != "") - y_ = $11 - printf "" - - if (denom == 1) i = 2 - else if (denom == 2) i = 3 - else if (denom == 5) i = 4 - else if (denom == 10) i = 5 - else if (denom == 20) i = 6 - else if (denom == 50) i = 7 - else if (denom == 100) i = 8 - else if (denom == 200) i = 9 - - # Greece 2002 needs special handling - if (CC == "GR" && $10 == 2002 && $11 == "MM") { - if (i <= 5) - y_ = "F" - else if (i <= 7) - y_ = "E" - else - y_ = "S" - } - - if ($i != "/") { - if ($11 != "") { - printf "", - getcls($i), y, y_ - } else - printf "", getcls($i), y - } - print "" - } - - END { - print "MARKER LOL" - print "
" $0 "
%s
%s %s%s
" - print "MARKER LMAO" - } - ' data/tmp-data.$1 data/coins \ - | last-of-design.sed \ - | sed -E 's|()[^<]*([^<]*)?()|\1\3|g' \ - | fsub '' - $nod/index.html \ - | sed 's/MARKER LMAO//' \ - | sponge $nod/index.html - done - done - - for file in `find $od -name '*.html'`; do - path=${file#out/??} - path=${path%/*.html} - sed -Ei "s|href=/(..)XYZ>|href=/\1$path>|" $file - done -} - -for lang in `find out -mindepth 1 -maxdepth 1 -name '??' -printf '%f\n'`; do - compile_for_lang $lang & -done -wait - -find out -name '*.html' -and -not -name 'index.html' -delete -rm data/tmp-data.?? - -cp -r out/* done -- cgit v1.2.3