1
0
Fork 0
dispatcher/bash_scripts/info_references.sh
2025-03-31 19:57:16 +03:00

23 lines
1.2 KiB
Bash
Executable file

#!/bin/bash
echo "Обновление домена удалённого репозитория в перекрёстных ссылках в описаниях."
domain="git.org.ru" && source info_param.sh
# название домена в верхнем регистре
DOMAIN="${domain^^}"
# шаблоны для подстановки
expr+=("s|codeberg\.org|$domain|g")
expr+=("s|CODEBERG\.ORG|$DOMAIN|g")
expr+=("s|git\.org\.ru|$domain|g")
expr+=("s|GIT\.ORG\.RU|$DOMAIN|g")
expr+=("s|hub\.mos\.ru|$domain|g")
expr+=("s|HUB\.MOS\.RU|$DOMAIN|g")
if [ "$domain" == "hub.mos.ru" ]; then
expr+=("s|src/branch|blob|g")
else
expr+=("s|blob|src/branch|g")
fi
cd ../.. # выход из папки и из репозитория
time_ms="$(date '+%s%3N')"
# поиск файлов "README" в корне каждого репозитория, замена строк по шаблонам и сортировка вывода
find . -maxdepth 2 -type f -name "README*.md" -printf '%p\0' | xargs -I{} -n1 -0 -P0 bash -c \
"echo '$domain => {}' && sed -i $(printf " -e '%s'" "${expr[@]}") '{}'" | LC_COLLATE=C sort
echo "Общее время выполнения: $(($(date '+%s%3N') - time_ms)) мс."