/
architector.net
/
GitVersion
Обзор
Документация
Войти
/
architector.net
/
GitVersion
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
hooks/pre-commit
62 строки
3 KB
Шишляев Дмитрий (домашний ноут)
Добавил hooks: post-checkout, pre-commit и pre-push, которые отвечают за создание файлов version.txt, log.txt и следят за наличием и актуальностью хуков 0.3.1 0.4.0-alpha.2
13 сен 2025, 15:15
13 сен 2025, 15:15
eb1bd31
Код
Авторство
О чём код?
#!/bin/sh # # Проверяем наличие файлов в каталоге './.git/hooks/' которые не оканчиваются на '.sample' # Если такие файлы есть и точно такие же файлы есть в каталоге './hooks' # то сравниваем эти файлы. Если различаются - копируем из './.git/hooks/' в './hooks' # Если такие файлы не существуют в каталоге './hooks' - сразу копируем из './.git/hooks/' в './hooks' # # To enable this hook, rename this file to "pre-commit". echo "*** Синхронизация файлов './.git/hooks/' --> './hooks'" for f in $(find ./.git/hooks/ -name "*" -type f | grep -v ".sample") do echo "В исходном каталоге './.git/hooks/' обнаружен файл $f" if [ ! -d ./hooks ] then mkdir ./hooks # echo "Создаём директорию ./hooks/" #else # echo "Директория ./hooks/ уже существует." fi d=${f//.git\//} #echo "d = $d" if test -e $d then echo "$d существует в целевом каталоге './hooks/'. Проверяем - отличается ли от исходного файла." if diff --brief $f $d > /dev/null; then echo "Файлы одинаковы. Дополнительные действия не требуются" else echo "Файлы различаются. Копируем файл из исходного каталога './.git/hooks/' в целевой './hooks'" cp $f ./hooks/ fi else echo "$d не существует. Копируем файл в ./hooks/" cp $f ./hooks/ fi done # echo "*** Синхронизация файлов './hooks/' --> './.git/hooks'" # # Теперь обратная ситуация: если в директории ./hooks есть файлы, но нет точно таких же в ./.git/hooks - # # то копируем эти файлы в ./.git/hooks # for f in $(find ./hooks/ -name "*" -type f | grep -v ".sample") # do # echo "В исходном каталоге './hooks/' обнаружен файл $f" # if [ ! -d ./.git/hooks ] # then # mkdir ./.git/hooks # # echo "Создаём директорию ./.git/hooks/" # #else # # echo "Директория ./.git/hooks/ уже существует." # fi # d=`echo $f | sed -e 's/\.\/hooks/\.\/\.git\/hooks/g'` # #echo "d = $d" # if test -e $d # then # echo "$d существует в целевом каталоге './.git/hooks/'. Дополнительные действия не требуются" # else # echo "$d не существует. Копируем файл в './.git/hooks/'" # cp $f ./.git/hooks/ # fi # done