odrling-overlay/www-client/ungoogled-chromium/files/update-dicts.sh

58 lines
1.6 KiB
Bash

#!/usr/bin/env bash
# Taken from
# https://github.com/qvint/ungoogled-chromium-fedora/commit/a68fdd679566da5134d916776f14e00c8e6a8042
self="$(readlink -f "${0}")"
self_dir="$(dirname "${self}")"
dict_utility="${self_dir}/convert_dict"
# Defaults.
hunspell_dicts_dir="/usr/share/myspell"
user_data_dir="${HOME}/.config/chromium"
# Parse command-line arguments.
while [[ $# -gt 0 ]]; do
arg_name="${1}"
case "${arg_name}" in
"--hunspell-dicts-dir")
hunspell_dicts_dir="${2}"
shift; shift
;;
"--user-data-dir")
user_data_dir="${2}"
shift; shift
;;
*)
echo -n "Usage: ungoogled-chromium-update-dicts "
echo "[--hunspell-dicts-dir DIR] [--user-data-dir DIR]"
exit 1
esac
done
# List all chromium language entries.
chromium_language_entries="$("${dict_utility}" list)"
# Iterate through chromium language entries and make *.bdic files.
chromium_dicts_dir="${user_data_dir}/Dictionaries"
mkdir -p "${chromium_dicts_dir}"
while read -r chromium_language_entry; do
while read \
chromium_language \
chromium_language_region \
chromium_bdic_basename; do
hunspell_language_region="${chromium_language_region//-/_}"
aff_path="${hunspell_dicts_dir}/${hunspell_language_region}.aff"
dic_path="${hunspell_dicts_dir}/${hunspell_language_region}.dic"
bdic_path="${chromium_dicts_dir}/${chromium_bdic_basename}"
if \
[[ -f "${aff_path}" ]] && \
[[ -f "${dic_path}" ]] && \
[[ ! -f "${bdic_path}" ]]; then
"${dict_utility}" convert "${aff_path}" "${dic_path}" "${bdic_path}"
fi
done <<< "${chromium_language_entry}"
done <<< "${chromium_language_entries}"