#!/usr/bin/env bash # Usage: {script} TLD_FILENAME # Update list of TLD set -euo pipefail declare -r IFS=$'\n' declare -r URL="https://www.currency-iso.org/dam/downloads/lists/list_one.xml" declare -r RULE="${1}" declare -r TEMPORARY_XML=$(mktemp) download_list() { echo "Downloading list from '${URL}'" curl --silent --location "${1}" --output "${2}" } update_currency_codes() { local -r filename_rule="${1}" local -r filename_xml="${2}" local -r number_of_items=$(grep "" "${filename_xml}" | wc --lines) local -r temporary_rule=$(mktemp) echo "Updating list in '${filename_rule}'" { sed -n '/^ "${temporary_rule}" mv "${temporary_rule}" "${filename_rule}" } download_list "${URL}" "${TEMPORARY_XML}" update_currency_codes "${RULE}" "${TEMPORARY_XML}"