#!/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