mirror of
https://github.com/DaoCloud/public-image-mirror.git
synced 2025-08-06 20:19:28 +08:00
Add image filter and update README
This commit is contained in:
78
hack/image-filter.sh
Executable file
78
hack/image-filter.sh
Executable file
@@ -0,0 +1,78 @@
|
||||
#!/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}"
|
Reference in New Issue
Block a user