Files
email-tracker/external/duckdb/extension/icu/scripts/makedata.sh
2025-10-24 19:21:19 -05:00

48 lines
1.5 KiB
Bash
Executable File

#! /bin/sh
# ICU File Structure
icu=https://github.com/unicode-org/icu/archive/refs/tags/release-version.zip
zip_file=release-version.zip
source_path=icu-release-version/icu4c/source
data_path=$source_path"/data"
#rm -rf build
set -e
mkdir -p build
pushd build
# download ICU 66
code_version=66-1
wget -nc ${icu/version/$code_version}
unzip -o ${zip_file/version/$code_version}
# download ICU 72 (replace with latest version)
data_version=72-1
wget -nc ${icu/version/$data_version}
unzip -o ${zip_file/version/$data_version}
# copy over the collation data
find ${data_path/version/$data_version} -type f ! -iname "*.txt" -delete
cp -r ${data_path/version/$data_version} ${source_path/version/$code_version}
# download IANA and copy the latest Time Zone Data
tz_version=2025b
rm -rf icu-data
git clone git@github.com:unicode-org/icu-data.git || true
cp icu-data/tzdata/icunew/${tz_version}/44/*.txt ${data_path/version/$code_version}/misc
# build the data, make sure to create "filters.json" first, see above
cp ../filters.json ${source_path/version/$code_version}
pushd ${source_path/version/$code_version}
ICU_DATA_FILTER_FILE=filters.json ./runConfigureICU Linux --with-data-packaging=archive
make
popd
# the data file will be located in icu-release-66-1/icu4c/source/data/out/icudt66l.dat
# copy over the data to the minimal-icu-collation data repository
# then run the following two commands:
popd
icudt=icudt${code_version/-[[:digit:]]/}l.dat
python3 scripts/inline-data.py < build/${data_path/version/$code_version}/out/${icudt} > third_party/icu/stubdata/stubdata.cpp