Skip to content

Commit 77a0510

Browse files
committed
use worktree for building
1 parent ad71970 commit 77a0510

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

build.sh

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
2520
echo "Building vzic"
2621
eval "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+
2830
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)
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

Comments
 (0)