| #!/bin/bash |
| |
| # Copyright 2020 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # Fail fast on any error. |
| set -e |
| |
| if [ -z ${ANDROID_BUILD_TOP} ]; then |
| echo \$ANDROID_BUILD_TOP must be set. |
| exit 1 |
| fi |
| |
| RELEASE_ID=${1} |
| if [ -z ${RELEASE_ID} ]; then |
| echo "Usage:" |
| echo " ${0} <release ID>" |
| echo |
| echo "e.g. ${0} 2020a" |
| exit 1 |
| fi |
| |
| SCRIPT_PATH=$(realpath $0) |
| |
| # -f = report failures |
| # -L = follow redirects |
| CURL_CMD="curl -f -L" |
| |
| TZBB_PROJECT_URL=https://github.com/evansiroky/timezone-boundary-builder/ |
| SERVER_RELEASE_BASE_URL=${TZBB_PROJECT_URL}releases/download |
| SERVER_SOURCE_BASE_URL=https://raw.githubusercontent.com/evansiroky/timezone-boundary-builder/master |
| |
| SOURCE_FILES=(\ |
| DATA_LICENSE \ |
| ) |
| RELEASE_FILES=(\ |
| input-data.zip \ |
| timezones.geojson.zip \ |
| ) |
| |
| function download() { |
| set -e |
| SERVER_BASE_URL=${1} |
| FILE_NAME=${2} |
| LOCAL_DIR=${3} |
| |
| URL=${SERVER_BASE_URL}/${FILE_NAME} |
| LOCAL_FILE_NAME=${LOCAL_DIR}/${FILE_NAME} |
| echo Downloading ${FILE_NAME} from ${URL}... |
| ${CURL_CMD} ${URL} --output ${LOCAL_FILE_NAME} |
| |
| DOWNLOAD_DATE=$(date) |
| SHA=$(sha1sum ${LOCAL_FILE_NAME} | awk '{ print $1}') |
| |
| # Add a METADATA file URL entry for every file we download. |
| cat << EOF >> ${METADATA_FILE} |
| url { |
| type: OTHER |
| value: "${FILE_NAME} downloaded from ${URL} on ${DOWNLOAD_DATE}, SHA1=${SHA}" |
| } |
| EOF |
| } |
| |
| LOCAL_DATA_DIR=${ANDROID_BUILD_TOP}/packages/modules/GeoTZ/tzbb_data |
| |
| mkdir -p ${LOCAL_DATA_DIR} |
| echo Removing existing data files... |
| rm -f ${LOCAL_DATA_DIR}/* |
| |
| METADATA_FILE=${LOCAL_DATA_DIR}/METADATA |
| # Start the METADATA file |
| cat << EOF > ${METADATA_FILE} |
| // Generated file DO NOT EDIT |
| // Run download-tzbb-files.sh |
| name: "tzbb_data" |
| description: |
| "Assorted files downloaded from ${TZBB_PROJECT_URL}" |
| |
| third_party { |
| url { |
| type: HOMEPAGE |
| value: "${TZBB_PROJECT_URL}" |
| } |
| EOF |
| |
| for FILE in ${SOURCE_FILES[@]}; do |
| download ${SERVER_SOURCE_BASE_URL} ${FILE} ${LOCAL_DATA_DIR} |
| done |
| |
| for FILE in ${RELEASE_FILES[@]}; do |
| download ${SERVER_RELEASE_BASE_URL}/${RELEASE_ID} ${FILE} ${LOCAL_DATA_DIR} |
| done |
| |
| PROTO_UPGRADE_DATE=$(date +'{ year: '%Y' month: '%-m' day: '%-d' }') |
| |
| # Finish the METADATA file |
| cat << EOF >> ${METADATA_FILE} |
| version: "${RELEASE_ID}" |
| last_upgrade_date ${PROTO_UPGRADE_DATE} |
| license_type: RESTRICTED |
| } |
| EOF |
| |
| ln -sr ${LOCAL_DATA_DIR}/DATA_LICENSE ${LOCAL_DATA_DIR}/LICENSE |
| |
| echo Look in ${LOCAL_DATA_DIR} for updated files.... |