Dist::Zilla::Plugin::ConfirmRelease - prompt for confirmation before releasing


Dist-Zilla documentation Contained in the Dist-Zilla distribution.

Index


Code Index:

NAME

Top

Dist::Zilla::Plugin::ConfirmRelease - prompt for confirmation before releasing

VERSION

Top

version 4.200008

DESCRIPTION

Top

This plugin prompts the author whether or not to continue before releasing the distribution to CPAN. It gives authors a chance to abort before they upload.

The default is "no", but you can set the environment variable DZIL_CONFIRMRELEASE_DEFAULT to "yes" if you just want to hit enter to release.

This plugin uses ExtUtils::MakeMaker::prompt(), so setting PERL_MM_USE_DEFAULT to a true value will accept the default without prompting.

AUTHOR

Top

Ricardo SIGNES <rjbs@cpan.org>

COPYRIGHT AND LICENSE

Top


Dist-Zilla documentation Contained in the Dist-Zilla distribution.

package Dist::Zilla::Plugin::ConfirmRelease;
BEGIN {
  $Dist::Zilla::Plugin::ConfirmRelease::VERSION = '4.200008';
}
# ABSTRACT: prompt for confirmation before releasing

use ExtUtils::MakeMaker ();

use Moose;
with 'Dist::Zilla::Role::BeforeRelease';

use Moose::Autobox;

sub before_release {
  my ($self, $tgz) = @_;

  my $releasers = join q{, },
                  map {; $_->plugin_name }
                  $self->zilla->plugins_with(-Releaser)->flatten;

  my $prompt = "*** Preparing to release $tgz with $releasers ***\n"
             . "Do you want to continue the release process?";

  my $default = exists $ENV{DZIL_CONFIRMRELEASE_DEFAULT}
              ? $ENV{DZIL_CONFIRMRELEASE_DEFAULT}
              : 0;

  my $confirmed = $self->zilla->chrome->prompt_yn(
    $prompt,
    { default => $default }
  );

  $self->log_fatal("Aborting release") unless $confirmed;
}

no Moose;
__PACKAGE__->meta->make_immutable;
1;




__END__