NAME
Dist::Zilla::Plugin::GatherDir - gather all the files in a directory
VERSION
version 6.011
DESCRIPTION
This is a very, very simple FileGatherer plugin. It looks in the directory named in the "root" attribute and adds all the files it finds there. If the root begins with a tilde, the tilde is replaced with the current user's home directory according to File::HomeDir.
Almost every dist will be built with one GatherDir plugin, since it's the easiest way to get files from disk into your dist. Most users just need:
[GatherDir]
[PruneCruft]
...and this will pick up all the files from the current directory into the dist. (PruneCruft is needed, here, to drop files that might present as build artifacts, but should not be shipped.) You can use it multiple times, as you can any other plugin, by providing a plugin name. For example, if you want to include external specification files into a subdir of your dist, you might write:
[GatherDir]
; this plugin needs no config and gathers most of your files
[GatherDir / SpecFiles]
; this plugin gets all the files in the root dir and adds them under ./spec
root = ~/projects/my-project/spec
prefix = spec
ATTRIBUTES
root
This is the directory in which to look for files. If not given, it defaults to the dist root -- generally, the place where your dist.ini or other configuration file is located.
prefix
This parameter can be set to place the gathered files under a particular directory. See the description above for an example.
include_dotfiles
By default, files will not be included if they begin with a dot. This goes both for files and for directories relative to the root
.
In almost all cases, the default value (false) is correct.
follow_symlinks
By default, symlinks pointing to directories will not be followed; set follow_symlinks = 1
to traverse these links as if they were normal directories.
In all followed directories, files which are symlinks are always gathered, with the link turning into a normal file.
exclude_filename
To exclude certain files from being gathered, use the exclude_filename
option. The filename is matched exactly, relative to root
. This may be used multiple times to specify multiple files to exclude.
exclude_match
This is just like exclude_filename
but provides a regular expression pattern. Filenames matching the pattern (relative to root
) are not gathered. This may be used multiple times to specify multiple patterns to exclude.
prune_directory
While traversing, any directory matching the regular expression pattern will not be traversed further. This may be used multiple times to specify multiple directories to skip.
AUTHOR
Ricardo SIGNES 😏 <rjbs@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2018 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.