#!/usr/bin/env bash if [[ "${#}" -ne 0 && "$1" != "-" ]]; then tmp=$(cat "${1}") else tmp=$(cat) fi domains=( cr.l5d.io docker.elastic.co docker.io gcr.io ghcr.io k8s.gcr.io mcr.microsoft.com nvcr.io quay.io registry.jujucharms.com rocks.canonical.com ) SUFFIX=${SUFFIX:-"m.daocloud.io"} function replace_domain() { local domain="${1}" IFS='.' read -ra arr <<<"${domain}" local len=${#arr[@]} if [[ "${len}" -eq 2 ]]; then echo "${arr[0]}.${SUFFIX}" return 0 fi if [[ "${arr[0]}" == "registry" ]]; then echo "${arr[1]}.${SUFFIX}" return 0 fi if [[ "${arr[0]}" == "docker" ]]; then echo "${arr[1]}.${SUFFIX}" return 0 fi if [[ "${arr[0]}" == "cr" ]]; then echo "${arr[1]}.${SUFFIX}" return 0 fi if [[ "${arr[0]}" =~ cr$ ]]; then echo "${arr[0]}.${SUFFIX}" return 0 fi unset 'arr[${#arr[@]}-1]' IFS='-' echo "${arr[*]}.${SUFFIX}" unset IFS return 0 } function replace_all() { tmp="${1}" for line in ${domains[*]}; do key="${line}" val="$(replace_domain ${line})" if [[ "${key}" == "" || "${val}" == "" ]]; then continue fi tmp="$(echo "${tmp}" | sed -e "s# ${key}# ${val}#g")" done # Remove sha256 hash tmp="$(echo "${tmp}" | sed -e "s#@sha256:[0-9a-f]\{64\}##g")" echo "${tmp}" } replace_all "${tmp}"