NAME¶
Dist::Zilla::Plugin::Run - Run external commands and code at specific phases of
Dist::Zilla
VERSION¶
version 0.026
SYNOPSIS¶
[Run::AfterBuild]
run = script/do_this.pl --dir %s --version %s
run = script/do_that.pl
eval = unlink scratch.dat
[Run::BeforeBuild]
run = script/do_this.pl --version %s
run = script/do_that.pl
eval = if ($ENV{SOMETHING}) {
eval = shift->log('some message')
eval = }
[Run::BeforeRelease]
run = script/myapp_before1.pl %s
run = script/myapp_before2.pl %n %v
run_no_trial = script/no_execution_on_trial.pl %n %v
[Run::Release]
run = script/myapp_deploy1.pl %s
run = deployer.pl --dir %d --tgz %a --name %n --version %v
run_no_trial = script/no_execution_on_trial.pl --dir %d --tgz %a --name %n --version %v
[Run::AfterRelease]
run = script/myapp_after.pl --archive %s --version %s
; %p can be used as the path separator if you have contributors on a different OS
run = script%pmyapp_after.pl --archive %s --version %s
[Run::AfterRelease / MyAppAfter]
run = script/myapp_after.pl --archive %s --version %s
[Run::Test]
run = script/tester.pl --name %n --version %v some_file.ext
run_if_release = ./Build install
run_if_release = make install
[Run::AfterMint]
run = some command %d
eval = unlink scratch.dat
DESCRIPTION¶
Run arbitrary commands and code at various Dist::Zilla phases.
PARAMETERS¶
run¶
Run the specific command at the specific Dist::Zilla phase given by the plugin.
For example, "[Run::Release]" runs during the release phase.
run_no_trial¶
Only run the given command if this isn't a
trial build or release.
run_if_trial¶
Only run the given command if this is a
trial build or release.
run_if_release¶
Only run the given command if this is a release.
run_no_release¶
Only run a given command if this isn't a release.
eval (EXPERIMENTAL)¶
Treats the input as a list of lines of Perl code; the code is evaluated at the
specific Dist::Zilla phase given by the plugin. The code is executed in its
own "eval" scope, within a subroutine body; @_ contains the instance
of the plugin executing the code. (Remember that "shift" in an
"eval" actually operates on @ARGV, not @_, so to access the plugin
instance, use $_[0].)
censor_commands¶
Normally, "run*" commands are included in distribution metadata when
used with the [MetaConfig] plugin. To bypass this, set "censor_commands =
1". Additionally, this command is set to true automatically when a URL
with embedded password is present.
Defaults to false.
CONVERSIONS¶
The following conversions/format specifiers are defined for passing as arguments
to the specified commands (though not all values are available at all phases).
- •
- %a the archive of the release (available to all *Release phases)
- •
- %d the directory in which the dist was built (or minted) (not in
"BeforeBuild")
- •
- %n the dist name
- •
- %p path separator ('/' on Unix, '\\' on Win32... useful for cross-platform
dist.ini files)
- •
- %v the dist version
- •
- %x full path to the current perl interpreter (like $^X but from
Config)
Additionally %s is retained for backward compatibility. Each occurrence is
replaced by a different value (like the regular "sprintf" function).
Individual plugins define their own values for the positional replacement of
%s.
AUTHOR¶
Torsten Raudssus <torsten@raudss.us> <
https://raudss.us/>
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2010 by Raudssus Social Software
<
https://raudss.us/>.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.
CONTRIBUTORS¶
- •
- Randy Stauner <rwstauner@cpan.org>
- •
- Karen Etheridge <ether@cpan.org>
- •
- Torsten Raudssus <getty@cpan.org>
- •
- Nickolay Platonov <nplatonov@cpan.org>
- •
- Olivier Mengue <dolmen@cpan.org>
- •
- Al Newkirk <github@alnewkirk.com>
- •
- Tatsuhiko Miyagawa <miyagawa@cpan.org>