2019-05-26 17:35:32 +02:00
|
|
|
#!/usr/bin/env bash
|
2020-05-26 16:00:24 +02:00
|
|
|
# Usage: {script}
|
2019-05-26 17:35:32 +02:00
|
|
|
# Update list of language codes (ISO-639-2)
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
2020-05-26 16:00:24 +02:00
|
|
|
declare -r LIST_URL="http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt"
|
|
|
|
declare -r LIST_FILENAME=$(mktemp)
|
2019-05-26 17:35:32 +02:00
|
|
|
|
2020-05-26 16:00:24 +02:00
|
|
|
declare -r RULE_FILENAME=$(dirname "${BASH_SOURCE}")/../library/Rules/LanguageCode.php
|
|
|
|
declare -r RULE_FILENAME_TEMPORARY=$(mktemp)
|
2019-05-26 17:35:32 +02:00
|
|
|
|
2020-05-26 16:00:24 +02:00
|
|
|
echo "- Downloading list from"
|
|
|
|
curl --silent --location "${LIST_URL}" --output "${LIST_FILENAME}"
|
2019-05-26 17:35:32 +02:00
|
|
|
|
|
|
|
|
2020-05-26 16:00:24 +02:00
|
|
|
echo "- Creating temporary file"
|
|
|
|
{
|
|
|
|
sed --silent '/^</,/ public const LANGUAGE_CODES/p' "${RULE_FILENAME}"
|
|
|
|
echo " // phpcs:disable Squiz.PHP.CommentedOutCode.Found"
|
|
|
|
while IFS='|' read alpha_3 _ alpha_2 name _; do
|
|
|
|
echo " ['${alpha_2}', '$(tr -cd '[a-z]' <<< ${alpha_3})'], // ${name}"
|
|
|
|
done < "${LIST_FILENAME}"
|
|
|
|
echo " // phpcs:enable Squiz.PHP.CommentedOutCode.Found"
|
|
|
|
sed --silent '/^ ];/,/^}/p' "${RULE_FILENAME}"
|
|
|
|
} > "${RULE_FILENAME_TEMPORARY}"
|
2019-05-26 17:35:32 +02:00
|
|
|
|
2020-05-26 16:00:24 +02:00
|
|
|
echo "- Updating content of '$(basename ${RULE_FILENAME})'"
|
|
|
|
mv "${RULE_FILENAME_TEMPORARY}" "${RULE_FILENAME}"
|