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