mirror of
https://github.com/Respect/Validation.git
synced 2024-06-08 16:52:16 +02:00
Create script to update TLD list
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
This commit is contained in:
parent
5c61c25680
commit
9b810b0e55
34
bin/update-tld
Executable file
34
bin/update-tld
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env bash
|
||||
# Usage: {script} TLD_FILENAME
|
||||
# Update list of TLD
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
declare -r IFS=$'\n'
|
||||
declare -r URL="https://data.iana.org/TLD/tlds-alpha-by-domain.txt"
|
||||
declare -r TEMPORARY_LIST_FILE=$(mktemp)
|
||||
declare -r TEMPORARY_RULE_FILE=$(mktemp)
|
||||
declare -r TLD_FILENAME="${1}"
|
||||
|
||||
echo "Downloading '${URL}'"
|
||||
curl -s -L "${URL}" -o "${TEMPORARY_LIST_FILE}"
|
||||
|
||||
echo "Updating '${TLD_FILENAME}'"
|
||||
{
|
||||
sed -nE '/^</,/^\{/p' "${TLD_FILENAME}"
|
||||
echo " // List extracted from ${URL}"
|
||||
grep '^#' "${TEMPORARY_LIST_FILE}" | sed 's,#, //,'
|
||||
echo " protected \$tldList = ["
|
||||
grep -v '^#' "${TEMPORARY_LIST_FILE}" |
|
||||
tr '[A-Z]' '[a-z]' |
|
||||
sed -E "s,^,',; s/$/', /" |
|
||||
tr -d '\n' |
|
||||
fold -w 72 -s |
|
||||
sed 's,^, ,g; s, $,,g'
|
||||
echo
|
||||
echo " ];"
|
||||
echo
|
||||
sed -nE '/^ public function/,/^}/p' "${TLD_FILENAME}"
|
||||
} > "${TEMPORARY_RULE_FILE}"
|
||||
|
||||
mv "${TEMPORARY_RULE_FILE}" "${TLD_FILENAME}"
|
Loading…
Reference in a new issue