94 lines
2.0 KiB
Bash
Executable File
94 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
###
|
|
# Runs the 'tz' tox test environment, which builds the repo against the master
|
|
# branch of the upstream tz database project.
|
|
|
|
set -e
|
|
|
|
TMP_DIR=${1}
|
|
REPO_DIR=${2}
|
|
ORIG_DIR=$(pwd)
|
|
CITOOLS_DIR=$REPO_DIR/ci_tools
|
|
|
|
REPO_TARBALL=${REPO_DIR}/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz
|
|
TMP_TARBALL=${TMP_DIR}/dateutil-zoneinfo.tar.gz
|
|
|
|
UPSTREAM_URL="https://github.com/eggert/tz.git"
|
|
|
|
function cleanup {
|
|
# Since this script modifies the original repo, whether or not
|
|
# it fails we need to restore the original file so as to not
|
|
# overwrite the user's local changes.
|
|
echo "Cleaning up."
|
|
if [ -f $TMP_TARBALL ]; then
|
|
cp -p $TMP_TARBALL $REPO_TARBALL
|
|
fi
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
# Work in a temporary directory
|
|
cd $TMP_DIR
|
|
|
|
# Clone or update the repo
|
|
DIR_EXISTS=false
|
|
if [ -d tz ]; then
|
|
cd tz
|
|
if [[ $(git remote get-url origin) == ${UPSTREAM_URL} ]]; then
|
|
git fetch origin master
|
|
git reset --hard origin/master
|
|
DIR_EXISTS=true
|
|
else
|
|
cd ..
|
|
rm -rf tz
|
|
fi
|
|
fi
|
|
|
|
if [ "$DIR_EXISTS" = false ]; then
|
|
git clone ${UPSTREAM_URL}
|
|
cd tz
|
|
fi
|
|
|
|
# Get the version
|
|
make version
|
|
VERSION=$(cat version)
|
|
TARBALL_NAME=tzdata${VERSION}.tar.gz
|
|
|
|
# Make the tzdata tarball - deactivate errors because
|
|
# I don't know how to make just the .tar.gz and I don't
|
|
# care if the others fail
|
|
set +e
|
|
make traditional_tarballs
|
|
set -e
|
|
|
|
mv $TARBALL_NAME $ORIG_DIR
|
|
|
|
# Install everything else
|
|
make TOPDIR=$TMP_DIR/tzdir install
|
|
|
|
#
|
|
# Make the zoneinfo tarball
|
|
#
|
|
cd $ORIG_DIR
|
|
|
|
# Put the latest version of zic on the path
|
|
PATH=$TMP_DIR/tzdir/usr/sbin:${PATH}
|
|
|
|
# Stash the old zoneinfo file in the temporary directory
|
|
mv $REPO_TARBALL $TMP_TARBALL
|
|
|
|
|
|
# Make the metadata file
|
|
ZONEFILE_METADATA_NAME=zonefile_metadata_master.json
|
|
${CITOOLS_DIR}/make_zonefile_metadata.py \
|
|
$TARBALL_NAME \
|
|
$VERSION \
|
|
$ZONEFILE_METADATA_NAME
|
|
|
|
python ${REPO_DIR}/updatezinfo.py $ZONEFILE_METADATA_NAME
|
|
|
|
# Run the tests
|
|
python -m pytest ${REPO_DIR}/dateutil/test
|
|
|