#!/bin/bash
# updates the release specific entries of the homepage
# note: gnu extensions of 'sed' are used
if [ $# != 1 ]; then
echo "$0:"
echo "You have to give the version as argument"
exit
fi
VERSION=$1
echo Version $VERSION
VERSION_REGEXP='[0-9].[0-9].[0-9][a-z]\?'
#VERSION_REGEXP='[0-9].[0-9].[0-9]'
#VERSION_REGEXP='[0-9.]*'
DATE_REGEXP='[0-9]\{1,2\}. [A-Z][a-z]\+ [0-9]\{4\}'
SIZE_REGEXP='\([^0-9]\)[0-9]\+[,.][0-9]'
# echos the size in megabyte with precision 1
# Argument is the filename in the release directory
function size() {
local SIZE_MB=$(du -k ../../../FreeDoko_${VERSION}.release/$1 | sed "s/\([0-9]*\).*/\1/")
SIZE_MB=$(( $SIZE_MB + (1024 / 10 / 2) ))
#SIZE_MB=$(( $SIZE_MB * 20 )) # for testings
echo "$(( ${SIZE_MB} / 1024))${SIZE_DELIMITER}$(( (${SIZE_MB} % 1024) / (1024 / 10) ))"
} # function size()
# german
pushd . >/dev/null
cd de
DATE=$(export LC_ALL=de_DE && date +"%d. %B %Y")
SIZE_DELIMITER=,
echo Windows: $(size FreeDoko_${VERSION}.Windows.zip)
echo Setup: $(size FreeDoko_${VERSION}.Setup.exe)
echo Linux: $(size FreeDoko_${VERSION}.Linux.tgz)
echo src: $(size FreeDoko_${VERSION}.src.zip)
sed \
-e "s|\(
Aktuelle Version: \)${VERSION_REGEXP}\( vom \)${DATE_REGEXP}\(<\/h2>\)|\1${VERSION}\2${DATE}\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Setup.exe\)|\1${VERSION}\2|" \
-e "s|\(.* Microsoft Windows.*\)${SIZE_REGEXP}\( MB.*\)|\1\2$(size FreeDoko_${VERSION}.Windows.zip)\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Linux.tgz\)|\1${VERSION}\2|" \
-e "s|\(.* GNU/Linux tgz-Archiv.*\)${SIZE_REGEXP}\( MB.*\)|\1\2$(size FreeDoko_${VERSION}.Linux.tgz)\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.src.zip\)|\1${VERSION}\2|" \
-e "s|\(.* Quelltext mit Graphiken.*\)${SIZE_REGEXP}\( MB.*\)|\1\2$(size FreeDoko_${VERSION}.src.zip)\3|" \
FreeDoko.html > FreeDoko.html.2 \
&& mv FreeDoko.html.2 FreeDoko.html
sed \
-e "s|\(FreeDoko \)${VERSION_REGEXP}\( — \)${DATE_REGEXP}\(<\/h1>\)|\1${VERSION}\2${DATE}\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Setup.exe.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Setup.exe)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.full.Setup.exe.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.full.Setup.exe)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Windows.zip.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Windows.zip)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Linux.tgz.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Linux.tgz)\4|" \
-e "s|\(freedoko-nonfree_\)${VERSION_REGEXP}\(_i386.deb.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size freedoko-nonfree_${VERSION}_i386.deb)\4|" \
-e "s|\(freedoko-nonfree-\)${VERSION_REGEXP}\(-2.i386.rpm.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size freedoko-nonfree-${VERSION}-2.i386.rpm)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.hpux.tgz.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.hpux.tgz)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.src.zip.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.src.zip)\4|" \
Dateien.html > Dateien.html.2 \
&& mv Dateien.html.2 Dateien.html
popd >/dev/null
# english
pushd . >/dev/null
cd en
DATE=$(export LC_ALL=C && date +"%d. %B %Y")
SIZE_DELIMITER=.
sed \
-e "s|\(Current version: \)${VERSION_REGEXP}\( of the \)${DATE_REGEXP}\(<\/h2>\)|\1${VERSION}\2${DATE}\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Setup.exe\)|\1${VERSION}\2|" \
-e "s|\(.* Microsoft Windows.*\)${SIZE_REGEXP}\( MB.*\)|\1\2$(size FreeDoko_${VERSION}.Setup.exe)\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Linux.tgz\)|\1${VERSION}\2|" \
-e "s|\(.* GNU/Linux tgz-archive.*\)${SIZE_REGEXP}\( MB.*\)|\1\2$(size FreeDoko_${VERSION}.Linux.tgz)\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.src.zip\)|\1${VERSION}\2|" \
-e "s|\(.* source code with graphics.*\)${SIZE_REGEXP}\( MB.*\)|\1\2$(size FreeDoko_${VERSION}.src.zip)\3|" \
FreeDoko.html > FreeDoko.html.2 \
&& mv FreeDoko.html.2 FreeDoko.html
sed \
-e "s|\(FreeDoko \)${VERSION_REGEXP}\( — \)${DATE_REGEXP}\(<\/h1>\)|\1${VERSION}\2${DATE}\3|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Setup.exe.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Setup.exe)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.full.Setup.exe.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.full.Setup.exe)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Windows.zip.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Windows.zip)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Linux.tgz.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Linux.tgz)\4|" \
-e "s|\(freedoko-nonfree_\)${VERSION_REGEXP}\(_i386.deb.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size freedoko-nonfree_${VERSION}_i386.deb)\4|" \
-e "s|\(freedoko-nonfree-\)${VERSION_REGEXP}\(-2.i386.rpm.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size freedoko-nonfree-${VERSION}-2.i386.rpm)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.hpux.tgz.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.hpux.tgz)\4|" \
-e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.src.zip.*\)${SIZE_REGEXP}\( MB.*\)|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.src.zip)\4|" \
files.html > files.html.2 \
&& mv files.html.2 files.html
popd >/dev/null