Why not adopt me?
NAME
Dist::Zilla::Role::Tempdir - Shell Out and collect the result in a DZ plug-in.
VERSION
version 1.001003
SYNOPSIS
package
#
Dist::Zilla::Plugin::FooBar;
use
Moose;
sub
setup_installer {
my
(
$self
,
$arg
) =
@_
;
my
(
@generated_files
) =
$self
->capture_tempdir(
sub
{
system
(
$somecommand
);
});
for
(
@generated_files
) {
if
(
$_
->is_new &&
$_
->name =~
qr/someregex/
){
$self
->add_file(
$_
->file );
}
}
}
This role is a convenience role for factoring into other plug-ins to use the power of Unix in any plug-in.
If for whatever reason you need to shell out and run your own app that is not Perl ( i.e.: Java ) to go through the code and make modifications, produce documentation, etc, then this role is for you.
Important to note however, this role ONLY deals with getting Dist::Zilla
's state written out to disk, executing your given arbitrary code, and then collecting the results. At no point does it attempt to re-inject those changes back into Dist::Zilla
. That is left as an exercise to the plug-in developer.
METHODS
capture_tempdir
Creates a temporary and dumps the current state of Dist::Zilla's files into it.
Runs the specified code sub chdir
'ed into that tmpdir
, and captures the changed files.
my
(
@array
) =
$self
->capture_tempdir(
sub
{
});
Response is an array of ::Tempdir::Item
[
bless
( {
name
=>
'file/Name/Here'
,
status
=>
'O'
# O = Original, N = New, M = Modified, D = Deleted
file
=> Dist::Zilla::Role::File object
},
'Dist::Zilla::Tempdir::Item'
) ,
bless
( ... ) ..... ]
Make sure to look at Dist::Zilla::Tempdir::Item
for usage.
SEE ALSO
AUTHOR
Kent Fredric <kentnl@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Kent Fredric <kentfredric@gmail.com>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.