1#!/bin/bash
2
3# updates the release specific entries of the homepage
4# note: gnu extensions of 'sed' are used
5
6if [ ! -f FreeDoko.html ]; then
7  echo "Datei FreeDoko.html nicht gefunden."
8  echo "Das Skript muss aus dem homepage-Verzeichnis aufgerufen werden."
9  exit 1
10fi
11
12VERSION=$(grep "^VERSION *=" ../Makefile.version | sed s/"^VERSION *= *//")
13
14echo Version $VERSION
15
16VERSION_REGEXP='[0-9].[0-9].[0-9]\+[a-z]\?'
17#VERSION_REGEXP='[0-9].[0-9].[0-9]'
18#VERSION_REGEXP='[0-9.]*'
19DATE_REGEXP='[0-9]\{1,2\}. [A-Z][a-z]\+ [0-9]\{4\}'
20SIZE_REGEXP='\([^0-9]\)[0-9]\+ MB'
21MD5SUM_REGEXP='[0-9a-f]\{32\}'
22\
23# echos the size in megabyte with precision 1
24# Argument is the filename in the release directory
25function size() {
26  local SIZE_kB=$(du -k ~/Programme/FreeDoko_${VERSION}.release/$1 | sed "s/\([0-9]*\).*/\1/")
27  echo -n $(( ( $SIZE_kB + (1024 / 2) ) / 1024 ))
28} # function size()
29
30# echos the md5sum
31# Argument is the filename in the release directory
32function md5() {
33  md5sum ~/Programme/FreeDoko_${VERSION}.release/$1 | awk '{print $1}'
34}
35
36DATE=$(export LC_ALL=de_DE.utf8 && date +"%d. %B %Y" | sed "s/^0//")
37
38echo "Windows: $(size FreeDoko_${VERSION}.Windows.zip) MB  MD5: $(md5 FreeDoko_${VERSION}.Windows.zip)"
39echo "Setup:   $(size FreeDoko_${VERSION}.Setup.exe  ) MB  MD5: $(md5 FreeDoko_${VERSION}.Setup.exe  )"
40echo "src:     $(size FreeDoko_${VERSION}.src.zip    ) MB  MD5: $(md5 FreeDoko_${VERSION}.src.zip    )"
41echo "Linux:   $(size FreeDoko_${VERSION}.Linux.zip  ) MB  MD5: $(md5 FreeDoko_${VERSION}.Linux.zip  )"
42
43sed -i \
44  -e "s|\(Download \)${VERSION_REGEXP}|\1${VERSION}|" \
45  -e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Setup.exe\)|\1${VERSION}\2|" \
46  -e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Linux.zip\)|\1${VERSION}\2|" \
47  -e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.src.zip\)|\1${VERSION}\2|" \
48  FreeDoko.html
49
50sed -i \
51  -e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Setup.exe.*\)${SIZE_REGEXP}\(.*MD5sum: \)${MD5SUM_REGEXP}|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Setup.exe) MB\4$(md5 FreeDoko_${VERSION}.Setup.exe)|" \
52  -e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Windows.zip.*\)${SIZE_REGEXP}\(.*MD5sum: \)${MD5SUM_REGEXP}|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Windows.zip) MB\4$(md5 FreeDoko_${VERSION}.Windows.zip)|" \
53  -e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.Linux.zip.*\)${SIZE_REGEXP}\(.*MD5sum: \)${MD5SUM_REGEXP}|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.Linux.zip) MB\4$(md5 FreeDoko_${VERSION}.Linux.zip)|" \
54  -e "s|\(FreeDoko_\)${VERSION_REGEXP}\(.src.zip.*\)${SIZE_REGEXP}\(.*MD5sum: \)${MD5SUM_REGEXP}|\1${VERSION}\2\3$(size FreeDoko_${VERSION}.src.zip) MB\4$(md5 FreeDoko_${VERSION}.src.zip)|" \
55  Download.html
56