Я хочу вызвать скрипт, который находится в репозитории.
Я мог бы, конечно, сделать следующее:
#!/bin/sh
../../myscript.sh
но я думаю, что это не красиво ;)
Итак, как мне получить путь к моему проекту в сценарии после фиксации?
Я хочу вызвать скрипт, который находится в репозитории.
Я мог бы, конечно, сделать следующее:
#!/bin/sh
../../myscript.sh
но я думаю, что это не красиво ;)
Итак, как мне получить путь к моему проекту в сценарии после фиксации?
Когда вы имеете дело с не голым репозиторием, хук post-commit
1 запускается с текущим рабочим каталогом рабочего дерева репозитория. Итак, вам не нужен ../../
.
Если вам нужен полный путь к скрипту, вы всегда можете сделать:
SCRIPT=$(readlink -nf myscript.sh)
... или вы можете использовать git rev-parse --show-toplevel
, чтобы получить абсолютный путь к рабочему каталогу:
SCRIPT=$(git rev-parse --show-toplevel)/myscript.sh
1 ... но обратите внимание, что это не относится к некоторым другим хукам, например. в хуке post-receive
в не голом репозитории текущим рабочим каталогом является каталог .git
.