X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FScriptRole.pm;h=1cd745f927a4bde517727e7095a0f89331ce661c;hb=2c298960a7602044a287c444e3f421d628202b76;hp=bb1b7ad76b9729152c1042fda00a3c3d6a1929e1;hpb=0e4038c63189b155c40e50c9d8c26f618e1f9814;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/ScriptRole.pm b/lib/Catalyst/ScriptRole.pm index bb1b7ad..1cd745f 100644 --- a/lib/Catalyst/ScriptRole.pm +++ b/lib/Catalyst/ScriptRole.pm @@ -5,7 +5,13 @@ use Pod::Usage; use MooseX::Getopt; use namespace::autoclean; -with 'MooseX::Getopt'; +with 'MooseX::Getopt' => { + excludes => [qw/ + _getopt_spec_warnings + _getopt_spec_exception + _getopt_full_usage + /], +}; has application_name => ( traits => ['NoGetopt'], @@ -19,9 +25,17 @@ has help => ( isa => Bool, is => 'ro', documentation => q{Display this help and exit}, + cmd_aliases => ['?', 'h'], ); -sub _exit_with_usage { +sub _getopt_spec_exception {} + +sub _getopt_spec_warnings { + shift; + warn @_; +} + +sub _getopt_full_usage { my $self = shift; pod2usage(); exit 0; @@ -29,7 +43,7 @@ sub _exit_with_usage { before run => sub { my $self = shift; - $self->_exit_with_usage if $self->help; + $self->_getopt_full_usage if $self->help; }; sub run { @@ -48,25 +62,6 @@ sub _run_application { $app->run($self->_application_args); } -# GROSS HACK, temporary until MX::Getopt gets some proper refactoring and unfucking.. -around '_parse_argv' => sub { - my ($orig, $self, @args) = @_; - my %data = eval { $self->$orig(@args) }; - $self->_exit_with_usage($@) if $@; - $data{usage} = Catalyst::ScriptRole::Useage->new(code => sub { shift; $self->_exit_with_usage(@_) }); - return %data; -}; - -# This package is going away. -package # Hide from PAUSE - Catalyst::ScriptRole::Useage; -use Moose; -use namespace::autoclean; - -has code => ( is => 'ro', required => 1 ); - -sub die { shift->code->(@_) } - 1; =head1 NAME @@ -79,7 +74,7 @@ Catalyst::ScriptRole - Common functionality for Catalyst scripts. use Moose; use namespace::autoclean; - with 'Catalyst::Script::Role'; + with 'Catalyst::ScriptRole'; sub _application_args { ... }