Provided by: libdist-zilla-plugin-run-perl_0.049-1_all bug

NAME

       Dist::Zilla::Plugin::Run - Run external commands and code at specific phases of
       Dist::Zilla

VERSION

       version 0.049

SYNOPSIS

         [Run::AfterBuild]
         run = script/do_this.pl --dir %d --version %v
         run = script/do_that.pl
         eval = unlink scratch.dat

         [Run::BeforeBuild]
         fatal_errors = 0
         run = script/do_this.pl --version %v
         run = script/do_that_crashy_thing.pl
         eval = if ($ENV{SOMETHING}) {
         eval =   $_[0]->log('some message')
         eval = }

         [Run::BeforeArchive]
         run = script/myapp_before1.pl %d %v
         run = script/myapp_before2.pl %n %v
         run_no_trial = script/no_execution_on_trial.pl %n %v

         [Run::BeforeRelease]
         run = script/myapp_before1.pl %a
         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 %a
         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 %a --dir %d --version %v
         ; %p can be used as the path separator if you have contributors on a different OS
         run = script%pmyapp_after.pl --archive %a --dir %d --version %v

         [Run::AfterRelease / MyAppAfter]
         run = script/myapp_after.pl --archive %a --dir %d --version %v

         [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
         eval = print "I just minted %n for you. Have a nice day!\n";

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_if_trial
       Only run the given command if this is a trial build or release.

   run_no_trial
       Only run the given command if this isn't 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
       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.

   fatal_errors
       When true, if the "run" command returns a non-zero exit status or the "eval" command dies,
       the build will fail. Defaults to true.

   quiet
       When true, diagnostic messages are not printed (except in "--verbose" mode).

       Defaults to false.

EXECUTION ORDER

       All commands for a given option name are executed together, in the order in which they are
       documented above.  Within commands of the same option name, order is preserved (from the
       order provided in dist.ini).

ENVIRONMENT

       For executed commands, "open3" in IPC::Open3 is used -- there is no subshell.
       Consequently environment variables may or may not be available depending on the individual
       architecture used.  For Perl strings that are evaluated, they are done in the dzil
       process, so all current global variables and other state is available for use.

       The current working directory is undefined, and may vary depending on the version of
       Dist::Zilla being used. If the state of the filesystem is important, explicitly change
       directories first, or base your relative paths off of the build root (available as %d, see
       below).

CONVERSIONS

       The following conversions/format specifiers are defined for passing as arguments to the
       specified commands and eval strings (though not all values are available at all phases).

       •   %a the archive of the release (only available to all *Release phases), as documented
           to be passed to BeforeRelease, Release, AfterRelease plugins

       •   %o the directory in which the distribution source originated

       •   %d the directory in which the distribution was built (or minted) (not available in
           "BeforeBuild")

       •   %n the distribution name

       •   %p path separator ('/' on Unix, '\\' on Win32... useful for cross-platform dist.ini
           files)

       •   %v the distribution version, if available (depending on the phase, the
           "VersionProvider" plugin may not be able to return a version)

       •   %t "-TRIAL" if the release is a trial release, otherwise the empty string

       •   %x full path to the current perl interpreter (like $^X but from Config)

       Additionally %s is retained for backward compatibility (for those plugins that existed
       when it was documented).  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.

       NOTE: when using filenames (e.g. %d, %n and %x), be mindful that these paths could contain
       special characters or whitespace, so if they are to be used in a shell command, take care
       to use quotes or escapes!

DANGER! SECURITY RISK!

       The very nature of these plugins is to execute code. Be mindful that your code may run on
       someone else's machine and don't be a jerk!

SUPPORT

       Bugs may be submitted through the RT bug tracker
       <https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-Plugin-Run> (or
       bug-Dist-Zilla-Plugin-Run@rt.cpan.org <mailto:bug-Dist-Zilla-Plugin-Run@rt.cpan.org>).

       There is also a mailing list available for users of this distribution, at
       <http://dzil.org/#mailing-list>.

       There is also an irc channel available for users of this distribution, at "#distzilla" on
       "irc.perl.org" <irc://irc.perl.org/#distzilla>.

AUTHOR

       Torsten Raudssus <torsten@raudss.us> <https://raudss.us/>

CONTRIBUTORS

       •   Karen Etheridge <ether@cpan.org>

       •   Randy Stauner <rwstauner@cpan.org>

       •   Nickolay Platonov <nplatonov@cpan.org>

       •   Olivier Mengue <dolmen@cpan.org>

       •   Al Newkirk <github@alnewkirk.com>

       •   David Golden <dagolden@cpan.org>

       •   Graham Ollis <plicease@cpan.org>

       •   Tatsuhiko Miyagawa <miyagawa@cpan.org>

       •   Thomas Sibley <tsibley@cpan.org>

COPYRIGHT AND LICENCE

       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.