Запустите ловушку pre-commit.com один раз (не для каждого файла), если обнаружен совпадающий файл

У меня есть ловушка, которая генерирует файлы документации из исходных файлов, созданных с помощью pre-commit.com framework. Функция, которая вызывается в этом хуке, не имеет аргумента файла, поэтому просто создает документацию для всех исходных файлов в каталоге. Хук - это system хук, то есть просто сценарий bash, в котором я вызываю эту функцию для создания документации. Однако в структуре pre-commit.com файлы передаются ловушке, и логика состоит в том, чтобы выполнить ловушку для каждого файла, что имеет смысл в большинстве случаев (например, линтинг каждого файла отдельно). Итак, мой вопрос: как я могу гарантировать, что ловушка документации запускается один раз, если какой-либо исходный файл изменен, а не запускается несколько раз (параллельно или последовательно) для отдельных файлов? Конкретно, мой хук генерирует документацию R с roxygen2::roxygenize(), и его можно найти здесь.


person Lorenz Walthert    schedule 25.07.2019    source источник
comment
Похоже на stackoverflow.com/ questions / 2412450 /   -  person Rudi    schedule 25.07.2019
comment
Я не уверена. Мой вопрос очень специфичен для структуры pre-commit.com. Я обновил вопрос, чтобы лучше отразить это.   -  person Lorenz Walthert    schedule 25.07.2019
comment
Похоже, вы пытаетесь изменить систему, разработанную для варианта использования A, чтобы применить ее к совершенно другому варианту использования H. Возможно, было бы лучше изучить систему, которая не так привязана к варианту использования «один файл за раз».   -  person torek    schedule 25.07.2019


Ответы (1)


Платформа предварительной фиксации поддерживает pass_filenames: false

Документы, возможно, можно было бы здесь улучшить, но это то, что они говорят

pass_filenames - (необязательно: по умолчанию true), если true, этот хук должен принимать имена файлов в качестве позиционных аргументов. новое в версии 0.14.0.

хммм да, может быть, не лучшее описание, но если false pre-commit вызовет вашу команду только один раз и не будет передавать имена файлов

person Anthony Sottile    schedule 27.07.2019