Я запускаю сценарий оболочки из другого сценария оболочки, который является git-hook pre-push
.
Это содержимое .git / hooks / pre-push:
#!/usr/bin/env bash
protected_branch='master'
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
if [ $protected_branch = $current_branch ]; then
sh test.sh
if [ $? != 0 ]; then
echo "Error"
exit 1
fi
else
exit 0
fi
Это содержание test.sh:
#!/bin/bash
run_base=1
run_test () {
read -p "enter varname: " varname
echo $varname
}
time {
if [ "$run_base" = "0" ] ; then
echo "skipped"
else
time { run_test ; }
echo "run_test done";
fi
}
Если я запускаю сценарий pre-push
напрямую, то он работает нормально, но не работает, когда я выполняю git push origin master
и pre-push
запускается автоматически.
read
в test.sh не выполняется, когда я запускаю скрипт подключения pre-push
. Нужно ли делать что-то конкретное для выполнения read
в test.sh
, который вызывается из pre-push
?