mirror of
				https://github.com/DaoCloud/public-image-mirror.git
				synced 2025-10-31 13:49:22 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| set -o errexit
 | |
| set -o nounset
 | |
| set -o pipefail
 | |
| 
 | |
| DEBUG="${DEBUG:-}"
 | |
| INCREMENTAL="${INCREMENTAL:-}"
 | |
| QUICKLY="${QUICKLY:-}"
 | |
| 
 | |
| declare -A DOMAIN_MAP=()
 | |
| 
 | |
| for line in $(cat ./domain.txt); do
 | |
|     line="${line/ /}"
 | |
|     if [[ "$line" == "" ]]; then
 | |
|         continue
 | |
|     fi
 | |
|     key="${line%%=*}"
 | |
|     val="${line##*=}"
 | |
|     if [[ "${key}" == "" || "${val}" == "" ]]; then
 | |
|         echo "Error: invalid line: ${line}"
 | |
|         continue
 | |
|     fi
 | |
| 
 | |
|     DOMAIN_MAP["${key}"]="${val}"
 | |
| done
 | |
| 
 | |
| declare -A EXCLUDED_MAP=()
 | |
| 
 | |
| for line in $(cat not_sync.yaml | yq -j '.not_sync[] | .image_pattern , "=", (.tag_patterns[] | . , "|" ) , "\n"' | sed "s/|$//g"); do
 | |
|     line="${line/ /}"
 | |
|     if [[ "$line" == "" ]]; then
 | |
|         continue
 | |
|     fi
 | |
|     key="${line%%=*}"
 | |
|     val="${line##*=}"
 | |
|     if [[ "${key}" == "" || "${val}" == "" ]]; then
 | |
|         echo "Error: invalid line: ${line}"
 | |
|         continue
 | |
|     fi
 | |
| 
 | |
|     EXCLUDED_MAP["${key}"]="${val}"
 | |
| done
 | |
| 
 | |
| LOGFILE="./check-image.log"
 | |
| echo >"${LOGFILE}"
 | |
| 
 | |
| for line in $(cat ./mirror.txt); do
 | |
|     line="${line/ /}"
 | |
|     if [[ "$line" == "" ]]; then
 | |
|         continue
 | |
|     fi
 | |
| 
 | |
|     exclude=""
 | |
|     for key in "${!EXCLUDED_MAP[@]}"; do
 | |
|         if [[ "${line}" =~ ${key} ]]; then
 | |
|             exclude+="${EXCLUDED_MAP[$key]}|"
 | |
|         fi
 | |
|     done
 | |
|     exclude="${exclude%|}"
 | |
| 
 | |
|     domain="${line%%/*}"
 | |
|     new_image=$(echo "${line}" | sed "s/^${domain}/${DOMAIN_MAP["${domain}"]}/g")
 | |
|     echo "Diff image ${line} ${new_image}"
 | |
|     DEBUG="${DEBUG}" QUICKLY="${QUICKLY}" INCREMENTAL="${INCREMENTAL}" EXCLUDED="${exclude}" ./scripts/diff-image.sh "${line}" "${new_image}" 2>&1 | tee -a "${LOGFILE}" || {
 | |
|         echo "Error: diff image ${line} ${new_image}"
 | |
|     }
 | |
| done
 | |
| 
 | |
| sync="$(cat "${LOGFILE}" | grep " SYNC: " | wc -l | tr -d ' ' || :)"
 | |
| unsync="$(cat "${LOGFILE}" | grep " UNSYNC: " | wc -l | tr -d ' ' || :)"
 | |
| sum=$(($sync + $unsync))
 | |
| 
 | |
| if [[ "${QUICKLY}" == "true" ]]; then
 | |
|     echo "https://img.shields.io/badge/Sync-${sync}%2F${sum}-blue"
 | |
|     wget "https://img.shields.io/badge/Sync-${sync}%2F${sum}-blue" -O sync.svg
 | |
| else
 | |
|     echo "https://img.shields.io/badge/Deep%20Sync-${sync}%2F${sum}-blue"
 | |
|     wget "https://img.shields.io/badge/Deep%20Sync-${sync}%2F${sum}-blue" -O sync.svg
 | |
| fi
 |