Исключить каталог из выпуска модуля Perl, используя Dist :: Zilla - PullRequest
3 голосов
/ 16 мая 2019

У меня есть подкаталог в корневом каталоге Perl Module, который я не хочу выпускать.

Я пытался использовать свойства "prune_directory" или "exclude_file" https://metacpan.org/pod/Dist::Zilla::Plugin::GatherDir

Я попытался указать секцию [GatherDir], но она конфликтует как дубликат с @Basic, поэтому в моем dist.ini теперь у меня есть (полный файл: https://github.com/telatin/FASTQ-Parser/blob/master/dist.ini):

[@Basic]
prune_directory = experimental

При сборке с dzil build --verbose у меня есть все строки вроде:

[@Basic/GatherDir] adding file experimental/scripts/my.pl

поэтому каталог, который я хотел удалить, действительно добавлен.

Что мне делать?

1 Ответ

4 голосов
/ 16 мая 2019

Пакет плагинов @Basic не может передавать опции используемым плагинам. Поэтому сначала вы должны удалить из него плагин GatherDir, используя пакет @ Filter , а затем самостоятельно использовать GatherDir с дополнительными параметрами.

[GatherDir]
prune_directory = experimental

[@Filter]
-bundle = @Basic
-remove = GatherDir

Другим вариантом является использование @ ConfigSlicer для модификации плагина, который @Basic использует напрямую.

[@ConfigSlicer]
-bundle = @Basic
GatherDir.prune_directory[] = experimental

([] в этом случае объясняется тем, что для установки параметров с несколькими значениями с помощью Config :: Slicer требуется указание, что это значение с несколькими значениями. Подробнее см. в документах .)

Рассмотрим комплект @ Starter , модернизированную версию @Basic, которая по умолчанию поддерживает -remove и опции конфигурации срезов, а также многие другие улучшения и опции, основанные на современных практиках Dist :: Zilla. .

...