#makefile #gnu-make
Вопрос:
Я создал цель make , которая извлекает список файлов git ls-files
и передает их в phpcs
утилиту стандартов кодирования.
Проблема в том, что я не хочу запускать его, если файлы не возвращаются. (потому что затем он пытается проанализировать всю кодовую базу)
phpcs:
FS=$(git ls-files -om --exclude-standard '*.php');
vendor/bin/phpcs --encoding=utf-8 --extensions=php $FS
Как бы я вышел, если $FS
(который задан в первой строке) пуст?
Я использую стандартную gnu-make
версию, которая поставляется с OSX. ( 3.8.1
)
Ответ №1:
На самом деле это не вопрос о файле makefile. Вы используете команды оболочки для выполнения этих операций, поэтому вам нужно придумать решение оболочки для вашей проблемы: make не входит в нее.
Вы можете сделать что-то вроде этого:
phpcs:
FS=$(git ls-files -om --exclude-standard '*.php');
test -z "$FS" || vendor/bin/phpcs --encoding=utf-8 --extensions=php $FS
пс. Нет такого выпуска, как GNU make 3.8.1. Я полагаю, вы имеете в виду GNU make 3.81.
Комментарии:
1. Понял, спасибо за объяснение. Я подтвердил, что это действительно работает. Кроме того, вы правы… Я имел в виду GNU make
3.81
.