diff --git a/.github/workflows/update-tld.yaml b/.github/workflows/update-tld.yaml new file mode 100644 index 00000000..ee8f9547 --- /dev/null +++ b/.github/workflows/update-tld.yaml @@ -0,0 +1,30 @@ +name: Update top-level domains + +on: + schedule: + - cron: '0 0 * * 0' + +jobs: + update-tld: + name: Update top-level domains + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: "2.0" + + - name: Execute script + run: bin/update-tld + + - name: Create pull request + uses: peter-evans/create-pull-request@v2 + with: + committer: The Respect Panda + author: The Respect Panda + commit-message: Update list of top-level domains + title: Update list of top-level domains + base: "2.0" + branch: "workflows/update-tld" diff --git a/bin/update-tld b/bin/update-tld index 5ef21ecd..36122ada 100755 --- a/bin/update-tld +++ b/bin/update-tld @@ -1,34 +1,43 @@ #!/usr/bin/env bash -# Usage: {script} TLD_FILENAME +# Usage: {script} RULE_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}" +declare -r LIST_URL="https://data.iana.org/TLD/tlds-alpha-by-domain.txt" +declare -r LIST_FILENAME=$(mktemp) -echo "Updating '${TLD_FILENAME}'" +declare -r RULE_FILENAME=$(dirname "${BASH_SOURCE}")/../library/Rules/Tld.php +declare -r RULE_FILENAME_TEMPORARY=$(mktemp) + +echo "- Downloading list" +curl --silent --location "${LIST_URL}" --output "${LIST_FILENAME}" + +echo "- Creating temporary file" { - sed -nE '/^ "${TEMPORARY_RULE_FILE}" + echo " /**" + echo " * {@inheritDoc}" + echo " */" + sed --silent --regexp-extended "/^ public function/,/^}/p" "${RULE_FILENAME}" +} > "${RULE_FILENAME_TEMPORARY}" -mv "${TEMPORARY_RULE_FILE}" "${TLD_FILENAME}" +echo "- Updating content of '$(basename ${RULE_FILENAME})'" +mv "${RULE_FILENAME_TEMPORARY}" "${RULE_FILENAME}" + +echo "Finished!"