respect-validation/bin/update-language-codes
Henrique Moody 83b515d0a3
Configure GitHub workflow to update language codes
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2020-05-26 18:33:23 +02:00

30 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Usage: {script}
# Update list of language codes (ISO-639-2)
set -euo pipefail
declare -r LIST_URL="http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt"
declare -r LIST_FILENAME=$(mktemp)
declare -r RULE_FILENAME=$(dirname "${BASH_SOURCE}")/../library/Rules/LanguageCode.php
declare -r RULE_FILENAME_TEMPORARY=$(mktemp)
echo "- Downloading list from"
curl --silent --location "${LIST_URL}" --output "${LIST_FILENAME}"
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}"
echo "- Updating content of '$(basename ${RULE_FILENAME})'"
mv "${RULE_FILENAME_TEMPORARY}" "${RULE_FILENAME}"