summaryrefslogtreecommitdiffhomepage
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild524
1 files changed, 0 insertions, 524 deletions
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 '<!-- LANG-SELECTOR -->' src/language-selector.html \
- $od/nav-bar.html
- sed -i "\\.<a href=/$1XYZ>.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|<html lang=XX>|<html lang=$1>|
- '" \
- | while read file; do
- xfsub '<!-- NAV-BAR -->' $od/nav-bar.html $file
- xfsub '<!-- COIN-NAV -->' $od/euro/coin-nav.html $file
- xfsub '<!-- NOTE-NAV -->' $od/euro/note-nav.html $file
- xfsub '<!-- COIN-DENOM-NAV -->' $od/euro/coin-denom-nav.html $file
- xfsub '<!-- FOOTER -->' $od/footer.html $file
- xfsub '<!-- TABLE-KEY -->' $od/table-key.html $file
- done
-
- for file in `find $od -name 'index.html'`; do
- base=${file#out}
- base=${base%/index.html}
- sed -Ei "
- /<nav>/,\\|</nav>|s|<a href=$base>([^<]*)</a>|<div class=selected>\1</div>|
- " $file
- done
-
- sed -Ei '
- /<!-- IF-COINS -->/,/<!-- FI-COINS -->/d
- /<!-- (IF|FI)-NOTES -->/d
- ' $od/euro/notes.template.html $od/euro/tnotes.template.html
- sed -Ei '
- /<!-- IF-NOTES -->/,/<!-- FI-NOTES -->/d
- /<!-- (IF|FI)-COINS -->/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 '
- /<nav>/,\|</nav>|s|<a href=/../euro/tn>([^<]*)</a>|<div class=selected>\1</div>|
- ' $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 \
- "<trX><td class=missing colspan=1>%s</td>"\
- "<td class=%s colspan=6>%s</td></tr>\n",
- fmt(col[i][0]), getcls(col[i][2]), col[i][1]
- }
- print "MARKER LOL"
- }
- ' data/notes \
- | last-of-design.sed \
- | xfsub '<!-- TABLE-BODY -->' - $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 "<table class=country-table><tbody>"
- for (code in countries) {
- i++
- if (i % 4 == 1)
- printf "<tr>"
- printf "<td><a href=%s>%s</a></td>", tolower(code),
- countries[code]
- if (i % 4 == 0)
- print "</tr>"
- }
- print "</tbody></table>"
-
- close(CMD)
- }
- ' \
- | xfsub '<!-- COUNTRY-TABLE -->' - $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 "
- /<nav>/,\\|</nav>|s|<a href=/../euro/$cc>$CC</a>|<div class=selected>$CC</div>|
- " $nod/index.html
- grep -m1 "^$CC" data/country-info.$1 \
- | cut -f2 \
- | xfsub '<!-- DEMON -->' - $nod/index.html
- sed -Ei "
- /<!-- (IF|FI)-$CC -->/d
- /<!-- IF-!$CC -->/,/<!-- FI-!$CC -->/d
- /<!-- (IF|FI)-![A-Z]+ -->/d
- /<!-- IF-[A-Z]+ -->/,/<!-- FI-[A-Z]+ -->/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 "<tr class=new-design><th colspan=8>%s</th></tr>\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 "<trX>"
- 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 "<td class=%s>%s <sup>%s</sup></td>",
- getcls($i), y, y_
- } else
- printf "<td class=%s>%s</td>", getcls($i), y
- }
- print "</tr>"
- }
-
- END { print "MARKER LOL" }
- ' data/sections.$1 data/coins \
- | last-of-design.sed \
- | sed -E 's|(<td class=not-minted>)[^<]*(<sup>[^<]*</sup>)?(</td>)|\1 \3|g' \
- | xfsub '<!-- SCOIN-TABLE-BODY -->' - $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 "<tr><td class=missing>%s <sup>%s</sup></td>", y, $3
- } else
- printf "<tr><td class=missing>%s</td>", y
-
- for (i = 1; i <= NF - n; i++) {
- printf "<td colspan=Y class=%s>%s</td>",
- getcls($(i + n)), a[i + 1]
- }
- print "</tr>"
- }
-
- END { print "MARKER LOL" }
- ' data/ccs \
- | colspan.sed \
- | grep -Fv 'MARKER LOL' \
- | xfsub '<!-- CCOIN-TABLE-BODY -->' - $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 "<tr><td>%s</td><td>%s</td><td colspan=5 class=have>%s</td></tr>",
- $2, $3, $4
- }
- ' data/errors | xfsub '<!-- ECOIN-TABLE-BODY -->' - $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 "
- /<nav>/,\\|</nav>|s|<a href=/../euro/${denom}e>([^<]*)</a>|<div class=selected>\\1</div>|
- " $nod/index.html
- sed -i "s/<!-- DENOM -->/$denom/" $nod/index.html
-
- sed -Ei "
- /<!-- (IF|FI)-$denom -->/d
- /<!-- IF-!$denom -->/,/<!-- FI-!$denom -->/d
- /<!-- (IF|FI)-![0-9]+ -->/d
- /<!-- IF-[0-9]+ -->/,/<!-- FI-[0-9]+ -->/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 "<tr class=new-design><th colspan=12>"sig"</th></tr>"
-
- c = 1
-
- for (j = 1; j <= length(col); j++) {
- split(col[j][1], s, " ")
- if (s[i] == "/")
- continue
-
- if ((c - 1) % 4 == 0)
- printf "<trX>"
-
- printf "<td colspan=X class=%s>", getcls(s[i])
- printf "%s (%s)", cc2name[col[j][0]], cc2c[col[j][0]]
- printf "</td>"
-
- if (c % 4 == 0)
- print "</tr>"
- c++
- }
- if ((c - 2) % 4 != 3)
- print "</tr>"
- }
- print "MARKER LOL"
- }
- ' data/country-info.$1 data/note-info data/notes \
- | colspan.sed \
- | last-of-design.sed \
- | xfsub '<!-- 2002-TABLE-BODY -->' - $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 "<tr class=new-design><th colspan=12>"sig"</th></tr>"
-
- c = 0
-
- for (j = 1; j <= length(col); j++) {
- split(col[j][1], s, " ")
- if (s[i] == "/")
- continue
-
- if (c % 4 == 0)
- printf "<trX>"
-
- printf "<td colspan=X class=%s>", getcls(s[i])
- printf "%s (%s)", cc2name[col[j][0]], cc2c[col[j][0]]
- printf "</td>"
-
- if (c % 4 == 3 && j < length(col))
- print "</tr>"
- if (c % 4 != 3 || j != length(col))
- c++
- }
- if ((c - 1) % 4 != 3)
- print "</tr>"
- }
- print "MARKER LOL"
- }
- ' data/country-info.$lang data/note-info data/notes \
- | colspan.sed \
- | last-of-design.sed \
- | xfsub '<!-- EUROPA-TABLE-BODY -->' - $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 "
- /<nav>/,\\|</nav>|s|<a href=/../euro/${denom_}>([^<]*)</a>|<div class=selected>\\1</div>|
- " $nod/index.html
- case $1 in
- en)
- sep=.
- ;;
- *)
- sep=,
- ;;
- esac
- if [ $denom -eq 100 -o $denom -eq 200 ]; then
- sed -i "s/<!-- DENOM -->/${denom%00}${sep}00/" $nod/index.html
- else
- sed -i "s/<!-- DENOM -->/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 "<section class=\"cl-section slant-down\">"
- print "<div>"
- print "<table class=coin-table cellspacing=0>"
- print "<thead><tr><th>" $0 "</th></tr></thead>"
- print "<tbody>"
- }
-
- $1 == CC && /.. start/ {
- sub(/.. start/, "")
- printf "<tr class=new-design><th>%s</th></tr>\n", $0
- next
- }
-
- $1 == CC {
- y = $10
- if ($11 != "")
- y_ = $11
- printf "<trX>"
-
- 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 "<td class=%s>%s <sup>%s</sup></td>",
- getcls($i), y, y_
- } else
- printf "<td class=%s>%s</td>", getcls($i), y
- }
- print "</tr>"
- }
-
- END {
- print "MARKER LOL"
- print "</tbody></table></div></section>"
- print "MARKER LMAO"
- }
- ' data/tmp-data.$1 data/coins \
- | last-of-design.sed \
- | sed -E 's|(<td class=not-minted>)[^<]*(<sup>[^<]*</sup>)?(</td>)|\1\3|g' \
- | fsub '<!-- DENOM-TABLE -->' - $nod/index.html \
- | sed 's/MARKER LMAO/<!-- DENOM-TABLE -->/' \
- | 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