1
0
Fork 0
pomodoro/bash_scripts/repo_orchestrate.sh
2024-12-29 10:39:47 +03:00

34 lines
2.3 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
echo "Параллельное выполнение скриптов и создание репозиториев для каталогов проектов."
# выполнение скриптов внутри каталога
function orchestrate {
cd "$1" || return
while true; do
while true; do
# 1 Удаление репозитория на сервере
./.repo_remote.sh "delete" >.repo_remote.log
# 2 Создание репозитория на сервере
./.repo_remote.sh "create" >>.repo_remote.log
# 3 Проверка корректности ответа от сервера при создании репозитория
case "$(tail -n+10 .repo_remote.log | grep -cE '^HTTP/[1,2].{,2}? [4,5]')" in
0) break ;; *) echo "Ошибка 400-500. Невозможно подключение к серверу: $1" ;;
esac
done
# 4 Создание локального репозитория и отправка данных на сервер
./.repo_local.sh >.repo_local.log
# 5 Изменение настроек репозитория на сервере, отключение ненужного
./.repo_remote.sh "options" >>.repo_remote.log
# 6 Проверка доступности вёб-интерфейса на сервере
case "$(./.repo_testing.sh | grep -cF '[91m')" in
0) break ;; *) echo "Ошибка доступности вёб-интерфейса: $1" ;;
esac
done
}
export -f orchestrate
cd ../.. # выход из папки и из репозитория
time_ms="$(date '+%s%3N')"
# запуск параллельной обработки всех каталогов проектов, расположенных на одном уровне с текущим
find . -mindepth 1 -maxdepth 1 -type d -printf 'orchestrate "%p"\0' | xargs -n1 -0 -P0 bash -c
# замер продолжительности выполнения в миллисекундах, пересчёт в минуты, секунды и миллисекунды
tms="$(($(date '+%s%3N') - time_ms))" && min="$((tms / 1000 / 60))" && sec="$((tms / 1000 % 60))"
ms="$((tms % 1000))" && printf 'Общее время выполнения: %02d:%02d.%03d мс.\n' "$min" "$sec" "$ms"