#!/bin/sh
# vi: ts=4 sw=4
set -e
require fsub gawk go pee sponge
PATH="$PATH:scripts"
rm -rf out/*
mkdir -p out
cp -r src/* 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
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/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
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 denom=$denom '
@include "scripts/getcls.awk"
$1 == "TN" {
i++
col[i][0] = $2
col[i][1] = $3
col[i][2] = $4
}
END {
for (i = 1; i <= length(col); i++) {
printf \
"€%d | %s |
\n",\
col[i][0], getcls(col[i][2]), col[i][1]
}
}
' data/notes | xfsub '' - $nod/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 \
| cut -f2 \
| xfsub '' - $nod/index.html
sed -Ei "
//d
//,//d
//d
//,//d
" $nod/index.html
gawk -v CC=$CC '
@include "scripts/getcls.awk"
$1 == CC && /.. start/ {
sub(/.. start/, "")
printf "%s |
\n", $0
next
}
$1 == CC {
y = $10
if ($11 != "")
y_ = $11
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/coins \
| last-of-design.sed \
| 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
done
for denom in `grep -Eo '^[0-9]+' data/notes | uniq`; do
nod=$od/euro/$denom
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 '
@include "scripts/getcls.awk"
BEGIN { FS = "\t" }
FILENAME == "data/country-info" { 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 {
for (i = 1; i <= 3; i++) {
if (i == 3 && denom == 5) {
print ""
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 = 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 ""
c++
}
if ((c - 1) % 4 != 3)
print ""
}
print "MARKER LOL"
}
' data/country-info data/note-info data/notes \
| colspan.sed \
| last-of-design.sed \
| xfsub '' - $nod/index.html
[ $denom -eq 500 ] && continue
gawk -v denom=$denom '
@include "scripts/getcls.awk"
BEGIN { FS = "\t" }
FILENAME == "data/country-info" { 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 {
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 ""
c++
}
if ((c - 1) % 4 != 3)
print ""
}
print "MARKER LOL"
}
' data/country-info data/note-info data/notes \
| colspan.sed \
| last-of-design.sed \
| xfsub '' - $nod/index.html
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