diff options
Diffstat (limited to 'intl/update-icu4x.sh')
-rwxr-xr-x | intl/update-icu4x.sh | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/intl/update-icu4x.sh b/intl/update-icu4x.sh new file mode 100755 index 0000000000..fdb2a20c05 --- /dev/null +++ b/intl/update-icu4x.sh @@ -0,0 +1,82 @@ +#!/bin/sh +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +set -e + +# Update the icu4x binary data for a given release: +# Usage: update-icu4x.sh <URL of ICU GIT> <release tag name> +# update-icu4x.sh https://github.com/unicode-org/icu4x.git icu@0.3.0 +# +# Update to the main branch: +# Usage: update-icu4x.sh <URL of ICU GIT> <branch> +# update-icu4x.sh https://github.com/unicode-org/icu4x.git main + +if [ $# -lt 2 ]; then + echo "Usage: update-icu4x.sh <URL of ICU4X GIT> <release tag name> <CLDR version>" + echo "Example: update-icu4x.sh https://github.com/unicode-org/icu4x.git icu@0.3.0 39.0.0" + exit 1 +fi + +# Make a log function so the output is easy to read. +log() { + CYAN='\033[0;36m' + CLEAR='\033[0m' + printf "${CYAN}[update-icu4x]${CLEAR} $*\n" +} + +# Specify locale and time zone information for consistent output and reproduceability. +export TZ=UTC +export LANG=en_US.UTF-8 +export LANGUAGE=en_US +export LC_ALL=en_US.UTF-8 + +# Define all of the paths. +original_pwd=$(pwd) +top_src_dir=$(cd -- "$(dirname "$0")/.." >/dev/null 2>&1 ; pwd -P) +data_dir=${top_src_dir}/config/external/icu4x +data_file=${data_dir}/icu4x.postcard +git_info_file=${data_dir}/ICU4X-GIT-INFO + +log "Remove the old data" +rm -f ${data_file} + +log "Clone ICU4X" +tmpclonedir=$(mktemp -d) +git clone --depth 1 --branch $2 $1 ${tmpclonedir} + +log "Change the directory to the cloned repo" +log ${tmpclonedir} +cd ${tmpclonedir} + +log "Run the icu4x-datagen tool to regenerate the data." +log "Saving the data to: ${data_file}" + +# TODO(Bug 1741262) - Should locales be filtered as well? It doesn't appear that the existing ICU +# data builder is using any locale filtering. + +# TODO(Bug 1741264) - Keys are not supported yet: https://github.com/unicode-org/icu4x/issues/192 +# --keys <KEYS>... +# Include this resource key in the output. Accepts multiple arguments. +# --key-file <KEY_FILE> +# Path to text file with resource keys to include, one per line. Empty lines and +# lines starting with '#' are ignored. +cargo run --bin icu4x-datagen -- \ + --cldr-tag $3 \ + --all-keys \ + --all-locales \ + --format blob \ + --out ${data_file} \ + -v \ + +log "Record the current cloned git information to:" +log ${git_info_file} +# (This ensures that if ICU modifications are performed properly, it's always +# possible to run the command at the top of this script and make no changes to +# the tree.) +git -C ${tmpclonedir} log -1 > ${git_info_file} + +log "Clean up the tmp directory" +cd ${original_pwd} +rm -rf ${tmpclonedir} |