@@ -17,14 +17,16 @@ set -e
1717# read settings file
1818. ./settings.config
1919
20- if ! git diff-index --quiet HEAD --; then
21- echo " Error: Git worktree is not clean. Please commit or stash your changes before proceeding."
22- exit 1
23- fi
24-
2520echo " Building vzic"
2621eval " make -C '` pwd` /vzic' -B OLSON_DIR=tzdata $VZIC_MAKE_ARGS "
2722
23+ rm work -rf
24+ git worktree prune
25+ git worktree add work
26+
27+ if [ ! -d build ]; then mkdir -p build; fi
28+ if [ ! -d build/out ]; then mkdir -p build/out; fi
29+
2830tzversions=$( 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)
2931
3032# Filter tzversions to skip versions before VZIC_START_RELEASE_NAME
@@ -37,6 +39,7 @@ for version in $tzversions; do
3739
3840 if git rev-parse " $tagname " > /dev/null 2>&1 ; then
3941 echo " Tag $tagname already exists. Skipping version $version ."
42+ git -C work checkout " $tagname "
4043 continue
4144 fi
4245
@@ -51,9 +54,9 @@ for version in $tzversions; do
5154
5255 if [[ ${VZIC_TZDATA_ARCHIVE_PATH} ]]; then
5356 echo " Extracting new tzdata"
54- if [ -d tzdata ]; then rm -rf tzdata; fi
55- mkdir -p tzdata
56- tar -xzf $VZIC_TZDATA_ARCHIVE_PATH -C tzdata
57+ if [ -d work/ tzdata ]; then rm -rf work/ tzdata; fi
58+ mkdir -p work/ tzdata
59+ tar -xzf $VZIC_TZDATA_ARCHIVE_PATH -C work/ tzdata
5760
5861 cp $VZIC_TZDATA_ARCHIVE_PATH build/out
5962 fi
@@ -66,7 +69,7 @@ for version in $tzversions; do
6669 export VZIC_ZONEINFO_NEW=` pwd` /build/zoneinfo
6770
6871 if [[ -d zoneinfo ]]; then
69- export VZIC_ZONEINFO_MASTER=` pwd` /zoneinfo
72+ export VZIC_ZONEINFO_MASTER=` pwd` /work/ zoneinfo
7073
7174 echo " Merging..."
7275 ./vzic/vzic-merge.pl
@@ -75,8 +78,8 @@ for version in $tzversions; do
7578 cp -r $VZIC_ZONEINFO_NEW /zones.* $VZIC_ZONEINFO_MASTER
7679
7780 else
78- cp -r " $VZIC_ZONEINFO_NEW " zoneinfo
79- export VZIC_ZONEINFO_MASTER=` pwd` /zoneinfo
81+ cp -r " $VZIC_ZONEINFO_NEW " work/ zoneinfo
82+ export VZIC_ZONEINFO_MASTER=` pwd` /work/ zoneinfo
8083 echo " No master zoneinfo configured. The new zoneinfo will not be merged and kept as is."
8184 fi
8285
@@ -86,9 +89,9 @@ for version in $tzversions; do
8689 tar -czf " $VZIC_OUT_TAR " *
8790 popd
8891
89- git add .
92+ git -C work add .
9093
91- git commit -m " Update zoneinfo to $VZIC_RELEASE_NAME "
92- git tag -a " $tagname " -m " Release $VZIC_RELEASE_NAME "
94+ git -C work commit -m " Update zoneinfo to $VZIC_RELEASE_NAME "
95+ git -C work tag -a " $tagname " -m " Release $VZIC_RELEASE_NAME "
9396
94- done
97+ done
0 commit comments