1
0
Fork 0
pomodoro/bash_scripts/repo_orchestrate.sh

21 lines
2.1 KiB
Bash
Raw Normal View History

2023-12-17 08:06:45 +03:00
#!/bin/bash
echo "Параллельное выполнение скриптов и создание репозиториев для каталогов проектов."
2023-12-17 09:37:59 +03:00
# Для всех репозиториев на одном уровне с текущим формируем скрипт в одну строчку и выполняем эти скрипты в параллельном режиме.
# Скрипт в одну строчку — это выполнение одного из заранее подготовленных других скриптов для локальных и удалённых репозиториев.
# Формируем и выполняем скрипты в несколько шагов с разными параметрами и по дороге сохраняем отчёты о выполнении.
# Параллельное выполнение скриптов на последующем шаге начинается после завершения всех потоков на предыдущем шаге.
2023-12-17 08:20:25 +03:00
cd .. # выходим из папки в корень репозитория
currentTimeMillis=$(date '+%s%3N')
2023-12-17 09:37:59 +03:00
# 1 Удаление репозиториев на сервере
2023-12-17 08:06:45 +03:00
find .. -mindepth 1 -maxdepth 1 -type d -printf \
2023-12-17 08:20:25 +03:00
'cd %h/%f && ./.repo_remote.sh "delete" >.repo_remote.log\0' | xargs -L1 -0 -P0 bash -c
2023-12-17 09:37:59 +03:00
# 2 Создание репозиториев на сервере
find .. -mindepth 1 -maxdepth 1 -type d -printf \
2023-12-30 23:37:18 +03:00
'cd %h/%f && ./.repo_remote.sh "create" >>.repo_remote.log\0' | xargs -L1 -0 -P2 bash -c
2023-12-17 09:37:59 +03:00
# 3 Создание локальных репозиториев и отправка данных на сервер
# 4 Изменение настроек репозиториев на сервере, отключение ненужного
2023-12-17 08:20:25 +03:00
find .. -mindepth 1 -maxdepth 1 -type d -printf \
'cd %h/%f && ./.repo_local.sh >.repo_local.log\0
cd %h/%f && ./.repo_remote.sh "options" >>.repo_remote.log\0' | xargs -L1 -0 -P0 bash -c
echo "Общее время выполнения: $(("$(date '+%s%3N')" - "$currentTimeMillis")) мс."