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

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

1 ответ

Решение

Структура пред-фиксации поддерживает pass_filenames: false

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

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

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

Другие вопросы по тегам