—# ABSTRACT: Pull upstream distributions into the repository
package
Pinto::Action::Pull;
use
Moose;
use
Try::Tiny;
#------------------------------------------------------------------------------
our
$VERSION
=
'0.0997'
;
# VERSION
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
has
targets
=> (
isa
=> TargetList,
traits
=> [
qw(Array)
],
handles
=> {
targets
=>
'elements'
},
required
=> 1,
coerce
=> 1,
);
has
no_fail
=> (
is
=>
'ro'
,
isa
=> Bool,
default
=> 0,
);
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
sub
BUILD {
my
(
$self
) =
@_
;
$self
->stack->assert_not_locked;
return
$self
;
}
#------------------------------------------------------------------------------
sub
execute {
my
(
$self
) =
@_
;
my
$stack
=
$self
->stack;
for
my
$target
(
$self
->targets ) {
try
{
$self
->repo->svp_begin;
$self
->notice(
"Pulling target $target to stack $stack"
);
my
(
$dist
,
$did_pull
,
$did_pull_prereqs
) =
$self
->pull(
target
=>
$target
);
$self
->warning(
"Target $target is already on stack $stack"
)
unless
$did_pull
;
push
@{
$self
->affected},
$dist
if
$did_pull
||
$did_pull_prereqs
;
}
catch
{
throw
$_
unless
$self
->no_fail;
$self
->result->failed(
because
=>
$_
);
$self
->repo->svp_rollback;
$self
->error(
$_
);
$self
->error(
"Target $target failed...continuing anyway"
);
}
finally
{
my
(
$error
) =
@_
;
$self
->repo->svp_release
unless
$error
;
};
}
$self
->chrome->progress_done;
return
$self
;
}
#------------------------------------------------------------------------------
__PACKAGE__->meta->make_immutable;
#------------------------------------------------------------------------------
1;
__END__
=pod
=encoding UTF-8
=for :stopwords Jeffrey Ryan Thalhammer BenRifkah Fowler Jakob Voss Karen Etheridge Michael
G. Bergsten-Buret Schwern Oleg Gashev Steffen Schwigon Tommy Stanton
Wolfgang Kinkeldei Yanick Boris Champoux brian d foy hesco popl Däppen Cory
G Watson David Steinbrunner Glenn
=head1 NAME
Pinto::Action::Pull - Pull upstream distributions into the repository
=head1 VERSION
version 0.0997
=head1 AUTHOR
Jeffrey Ryan Thalhammer <jeff@stratopan.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Jeffrey Ryan Thalhammer.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut