Невозможно запустить тестовый набор перидот из git hook

Я сделал следующий pre-commit git hook:

#/usr/bin/env bash
echo "Running pre-commit hooks... "vendor/bin/peridot -c OS/Specs/peridot.php OS/Specs/
echo "Done."

Когда я просто ввожу эту команду в терминал, она запускает все мои тесты. Однако, когда запускается git hook, я получаю это:

Running pre-commit hooks...
PHP Parse error:  parse error in /path/to/repo/vendor/peridot-php/peridot/bin/peridot on line 9
Done.

Эта строка содержит массив в квадратных скобках []. Когда я переключаюсь на старый синтаксис array (), ошибка исчезает (и заменяется еще одним вниз). Кроме того, когда я бегу php -v в обоих местах я получаю:

Терминал
PHP 5.4.24 (cli) (сборка: 30 января 2014 г., 10:18:21)

перед фиксацией
PHP 5.3.28 (cli) (сборка: 23 января 2014 г. 18:02:48)

Почему мой Git hook использует неверную версию PHP? Как я могу это исправить? Спасибо!

2

Решение

Похоже vendor/bin/peridot скрипт PHP, так как вы указали, что он начинается с хеш-бэнга PHP (#!/usr/bin/env php). Похоже, что ваша среда Git отличается PATH к вашей обычной учетной записи пользователя, и поэтому он сначала видит более старую версию PHP.

Хитрость в этом случае заключается в том, чтобы встроить версию PHP в хук коммита, чтобы она не выполняла никаких действий. PATH поиск.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]