This is an automated email from the git hooks/post-receive script. kanashiro-guest pushed a commit to branch master in repository carton.
commit c56bdb0747e4120bb4b0838694ebc5667612cd02 Author: Tatsuhiko Miyagawa <miyag...@bulknews.net> Date: Fri Jul 1 13:53:10 2011 -0700 Handle errors correctly --- lib/Carton/CLI.pm | 14 ++++++++++---- lib/Carton/Config.pm | 3 +++ lib/Carton/Error.pm | 9 +++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm index ab1b2a0..eb9fcad 100644 --- a/lib/Carton/CLI.pm +++ b/lib/Carton/CLI.pm @@ -2,15 +2,15 @@ package Carton::CLI; use strict; use warnings; -use Carton; -use Carton::Util; - use Cwd; use Config; use Getopt::Long; use Term::ANSIColor qw(colored); +use Carton; +use Carton::Util; use Carton::Config; +use Carton::Error; use Carton::Tree; use Try::Tiny; @@ -75,7 +75,12 @@ sub run { my $call = $self->can("cmd_$cmd"); if ($call) { - $self->$call(@commands); + try { + $self->$call(@commands); + } catch { + /Carton::Error::CommandExit/ and return; + die $_; + } } else { die "Could not find command '$cmd'\n"; } @@ -123,6 +128,7 @@ sub print { sub error { my($self, $msg) = @_; $self->print($msg, ERROR); + Carton::Error::CommandExit->throw; } sub cmd_help { diff --git a/lib/Carton/Config.pm b/lib/Carton/Config.pm index 816958b..1690261 100644 --- a/lib/Carton/Config.pm +++ b/lib/Carton/Config.pm @@ -42,5 +42,8 @@ sub set { $self->SUPER::set(%args); } +no Any::Moose; +__PACKAGE__->meta->make_immutable; + 1; diff --git a/lib/Carton/Error.pm b/lib/Carton/Error.pm new file mode 100644 index 0000000..cd81376 --- /dev/null +++ b/lib/Carton/Error.pm @@ -0,0 +1,9 @@ +package Carton::Error; +use strict; +use Any::Moose; + +package Carton::Error::CommandExit; +use Any::Moose; +extends 'Carton::Error'; + +1; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/carton.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits