Scroll to navigation

Dist::Zilla::Plugin::Run(3pm) User Contributed Perl Documentation Dist::Zilla::Plugin::Run(3pm)
 

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>
2014-09-06 perl v5.20.0