@@ -17,52 +17,80 @@ set -e
1717# read settings file
1818. ./settings.config
1919
20- echo " Building $VZIC_RELEASE_NAME "
20+ echo " Building vzic"
21+ eval " make -C '` pwd` /vzic' -B OLSON_DIR=tzdata $VZIC_MAKE_ARGS "
2122
22- mkdir -p build/out
23+ if [ ! -d build ]; then mkdir -p build; fi
24+ if [ ! -d build/out ]; then mkdir -p build/out; fi
2325
24- if [[ ${VZIC_TZDATA_ARCHIVE_URL} ]]; then
25- echo " Downloading tzdata from $VZIC_TZDATA_ARCHIVE_URL "
26- wget -q -O build/tzdata$VZIC_RELEASE_NAME .tar.gz $VZIC_TZDATA_ARCHIVE_URL
27- export VZIC_TZDATA_ARCHIVE_PATH=build/tzdata$VZIC_RELEASE_NAME .tar.gz
26+ if [ -f tzdb_version.txt ]; then
27+ VZIC_CURRENT_RELEASE_NAME=$( cat tzdb_version.txt)
28+ echo " Start version set to $VZIC_CURRENT_RELEASE_NAME from tzdb_version.txt"
29+ else
30+ echo " tzdb_version.txt not found. Exiting."
31+ exit 1
2832fi
2933
30- if [[ ${VZIC_TZDATA_ARCHIVE_PATH} ]]; then
31- echo " Extracting new tzdata"
32- if [ -d tzdata ]; then rm -rf tzdata; fi
33- mkdir -p tzdata
34- tar -xzf $VZIC_TZDATA_ARCHIVE_PATH -C tzdata
34+ tzversions=$( wget -q -O - $VZIC_TZDB_RELEASES_URL | grep -oP ' tzdata\K[\d]+[a-z](?=\.tar\.gz)' | awk ' {print ($0 ~ /^9/ ? "19" $0 : $0)}' | sort | uniq)
3535
36- cp $VZIC_TZDATA_ARCHIVE_PATH build/out
37- fi
36+ # Filter tzversions to skip versions before VZIC_CURRENT_RELEASE_NAME
37+ tzversions= $( echo " $tzversions " | awk -v start= " $VZIC_CURRENT_RELEASE_NAME " ' $0 > start ' )
3838
39- echo " Building vzic"
40- eval " make -C '` pwd` /build/vzic' -B OLSON_DIR=tzdata $VZIC_MAKE_ARGS "
39+ export VZIC_RELEASE_NAME=
4140
42- echo " Running vzic"
43- if [ -d build/zoneinfo ]; then rm -r build/zoneinfo; fi
44- mkdir -p build/zoneinfo
45- eval " ./build/vzic/vzic --olson-dir tzdata --output-dir build/zoneinfo $VZIC_INVOCATION_ARGS "
41+ for version in $tzversions ; do
4642
47- export VZIC_ZONEINFO_NEW= ` pwd ` /build/zoneinfo
43+ export VZIC_RELEASE_NAME= $version
4844
49- if [[ -d zoneinfo ]]; then
50- export VZIC_ZONEINFO_MASTER=` pwd` /zoneinfo
45+ echo " Processing version: $version " ;
5146
52- echo " Merging..."
53- ./build/vzic/vzic-merge.pl
47+ export VZIC_TZDATA_ARCHIVE_URL=$VZIC_TZDB_RELEASES_URL /tzdata$VZIC_RELEASE_NAME .tar.gz
48+ if [[ ${VZIC_TZDATA_ARCHIVE_URL} ]]; then
49+ echo " Downloading tzdata from $VZIC_TZDATA_ARCHIVE_URL "
50+ wget -q -O build/tzdata$VZIC_RELEASE_NAME .tar.gz $VZIC_TZDATA_ARCHIVE_URL
51+ export VZIC_TZDATA_ARCHIVE_PATH=build/tzdata$VZIC_RELEASE_NAME .tar.gz
52+ fi
5453
55- # copy updated zones
56- cp -r $VZIC_ZONEINFO_NEW /zones.* $VZIC_ZONEINFO_MASTER
54+ if [[ ${VZIC_TZDATA_ARCHIVE_PATH} ]]; then
55+ echo " Extracting new tzdata"
56+ if [ -d tzdata ]; then rm -rf tzdata; fi
57+ mkdir -p tzdata
58+ tar -xzf $VZIC_TZDATA_ARCHIVE_PATH -C tzdata
5759
58- else
59- cp -r " $VZIC_ZONEINFO_NEW " zoneinfo
60- export VZIC_ZONEINFO_MASTER=` pwd` /zoneinfo
61- echo " No master zoneinfo configured. The new zoneinfo will not be merged and kept as is."
62- fi
60+ cp $VZIC_TZDATA_ARCHIVE_PATH build/out
61+ fi
62+
63+ echo " Running vzic"
64+ if [ -d build/zoneinfo ]; then rm -r build/zoneinfo; fi
65+ mkdir -p build/zoneinfo
66+ eval " ./vzic/vzic --olson-dir tzdata --output-dir build/zoneinfo $VZIC_INVOCATION_ARGS "
67+
68+ export VZIC_ZONEINFO_NEW=` pwd` /build/zoneinfo
69+
70+ if [[ -d zoneinfo ]]; then
71+ export VZIC_ZONEINFO_MASTER=` pwd` /zoneinfo
72+
73+ echo " Merging..."
74+ ./vzic/vzic-merge.pl
75+
76+ # copy updated zones
77+ cp -r $VZIC_ZONEINFO_NEW /zones.* $VZIC_ZONEINFO_MASTER
78+
79+ else
80+ cp -r " $VZIC_ZONEINFO_NEW " zoneinfo
81+ export VZIC_ZONEINFO_MASTER=` pwd` /zoneinfo
82+ echo " No master zoneinfo configured. The new zoneinfo will not be merged and kept as is."
83+ fi
84+
85+ echo " Creating output archive"
86+ VZIC_OUT_TAR=" ` pwd` /build/out/zoneinfo-$VZIC_RELEASE_NAME .tar.gz"
87+ pushd $VZIC_ZONEINFO_MASTER
88+ tar -czf " $VZIC_OUT_TAR " *
89+ popd
90+
91+ echo $VZIC_RELEASE_NAME > tzdb_version.txt
92+
93+ git add .
6394
64- echo " Creating output archive"
65- VZIC_OUT_TAR=" ` pwd` /build/out/zoneinfo-$VZIC_RELEASE_NAME .tar.gz"
66- pushd $VZIC_ZONEINFO_MASTER
67- tar -czf " $VZIC_OUT_TAR " *
68- popd
95+ git commit -m " Update zoneinfo to $VZIC_RELEASE_NAME "
96+ done
0 commit comments