chromium/third_party/hyphenation-patterns/build-hyb.sh

#!/bin/bash
# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# `mk_hyb_file.py` is a program to generate hyphen data file for minikin.
mk_hyb=./mk_hyb_file.py
if [[ ! -f $mk_hyb_file ]]; then
  mk_hyb_url="https://android.googlesource.com/platform/frameworks/minikin/+/refs/heads/master/tools/mk_hyb_file.py"
  echo "Downloading mk_hyb_file from $mk_hyb_url"
  curl "$mk_hyb_url?format=TEXT" | base64 --decode >$mk_hyb
  chmod +x $mk_hyb
fi

# Read pattern_locales from `src/Android.mk`, expecting the format like this:
# pattern_locales := \
#     as/as \
#     be/be \
#     :
#     te/te \
#     tk/tk
# (blank line)
pattern_mk=src/Android.mk
pattern_locales () {
  awk -e '
    /^pattern_locales :=/ {flag=1; next}
    !flag {next}
    /^$/ {flag=0; next}
    {print $1}
    ' $pattern_mk
}

# Rebuild the data file in `$hyb`.
src=src/
hyb=hyb/
LICENSE=LICENSE
rm -rf "$hyb"
mkdir -p "$hyb"
rm -f "$LICENSE"

PRE=''
pattern_locales | while IFS=/ read dir name; do
  (set -x; $mk_hyb "$src$dir/hyph-$name.pat.txt" "${hyb}hyph-$name.hyb")

  # Concatenate to the LICENSE file.
  echo -e "${PRE}hyph-$name.hyb\n" >> "$LICENSE"
  for name in 'NOTICE' 'LICENSE'; do
    if [ -f "$src$dir/$name" ]; then
      echo "Appending $src$dir/$name to $LICENSE"
      cat "$src$dir/$name" >> "$LICENSE"
    fi
  done
  PRE='\n'
done

rm -f $mk_hyb