Skip to content

Commit

Permalink
improved option handling of all commands
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Oct 20, 2012
1 parent 6dc78f3 commit 399986c
Show file tree
Hide file tree
Showing 10 changed files with 22 additions and 25 deletions.
3 changes: 3 additions & 0 deletions Changes
@@ -1,4 +1,7 @@

3.50 2012-10-20
- Improved option handling of all commands.

3.49 2012-10-19
- Improved documentation.
- Improved tests.
Expand Down
2 changes: 1 addition & 1 deletion lib/Mojolicious.pm
Expand Up @@ -38,7 +38,7 @@ has static => sub { Mojolicious::Static->new };
has types => sub { Mojolicious::Types->new };

our $CODENAME = 'Rainbow';
our $VERSION = '3.49';
our $VERSION = '3.50';

sub AUTOLOAD {
my $self = shift;
Expand Down
8 changes: 0 additions & 8 deletions lib/Mojolicious/Command.pm
Expand Up @@ -6,7 +6,6 @@ use Cwd 'getcwd';
use File::Basename 'dirname';
use File::Path 'mkpath';
use File::Spec::Functions qw(catdir catfile);
use Getopt::Long qw(GetOptions :config no_auto_abbrev no_ignore_case);
use Mojo::Loader;
use Mojo::Server;
use Mojo::Template;
Expand Down Expand Up @@ -90,13 +89,6 @@ sub write_rel_file {
$self->write_file($self->rel_file($path), $data);
}

sub _options {
my ($self, $args) = (shift, shift);
local @ARGV = @$args;
GetOptions @_;
@$args = @ARGV;
}

1;

=head1 NAME
Expand Down
3 changes: 2 additions & 1 deletion lib/Mojolicious/Command/cgi.pm
@@ -1,6 +1,7 @@
package Mojolicious::Command::cgi;
use Mojo::Base 'Mojolicious::Command';

use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_ignore_case);
use Mojo::Server::CGI;

has description => "Start application with CGI.\n";
Expand All @@ -14,7 +15,7 @@ EOF
sub run {
my ($self, @args) = @_;
my $cgi = Mojo::Server::CGI->new(app => $self->app);
$self->_options(\@args, nph => sub { $cgi->nph(1) });
GetOptionsFromArray \@args, nph => sub { $cgi->nph(1) };
$cgi->run;
}

Expand Down
7 changes: 3 additions & 4 deletions lib/Mojolicious/Command/cpanify.pm
Expand Up @@ -2,6 +2,7 @@ package Mojolicious::Command::cpanify;
use Mojo::Base 'Mojolicious::Command';

use File::Basename 'basename';
use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_ignore_case);
use Mojo::UserAgent;

has description => "Upload distribution to CPAN.\n";
Expand All @@ -19,11 +20,9 @@ sub run {
my ($self, @args) = @_;

# Options
$self->_options(
\@args,
GetOptionsFromArray \@args,
'p|password=s' => \(my $password = ''),
'u|user=s' => \(my $user = '')
);
'u|user=s' => \(my $user = '');
die $self->usage unless my $file = shift @args;

# Upload
Expand Down
7 changes: 3 additions & 4 deletions lib/Mojolicious/Command/daemon.pm
@@ -1,6 +1,7 @@
package Mojolicious::Command::daemon;
use Mojo::Base 'Mojolicious::Command';

use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_ignore_case);
use Mojo::Server::Daemon;

has description => "Start application with HTTP and WebSocket server.\n";
Expand Down Expand Up @@ -30,17 +31,15 @@ sub run {

# Options
my $daemon = Mojo::Server::Daemon->new(app => $self->app);
$self->_options(
\@args,
GetOptionsFromArray \@args,
'b|backlog=i' => sub { $daemon->backlog($_[1]) },
'c|clients=i' => sub { $daemon->max_clients($_[1]) },
'g|group=s' => sub { $daemon->group($_[1]) },
'i|inactivity=i' => sub { $daemon->inactivity_timeout($_[1]) },
'l|listen=s' => \my @listen,
'p|proxy' => sub { $ENV{MOJO_REVERSE_PROXY} = 1 },
'r|requests=i' => sub { $daemon->max_requests($_[1]) },
'u|user=s' => sub { $daemon->user($_[1]) }
);
'u|user=s' => sub { $daemon->user($_[1]) };

# Start
$daemon->listen(\@listen) if @listen;
Expand Down
4 changes: 3 additions & 1 deletion lib/Mojolicious/Command/eval.pm
@@ -1,6 +1,8 @@
package Mojolicious::Command::eval;
use Mojo::Base 'Mojolicious::Command';

use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_ignore_case);

has description => "Run code against application.\n";
has usage => <<"EOF";
usage: $0 eval [OPTIONS] CODE
Expand All @@ -16,7 +18,7 @@ sub run {
my ($self, @args) = @_;

# Options
$self->_options(\@args, 'v|verbose' => \my $verbose);
GetOptionsFromArray \@args, 'v|verbose' => \my $verbose;
my $code = shift @args || '';

# Run code against application
Expand Down
7 changes: 3 additions & 4 deletions lib/Mojolicious/Command/get.pm
@@ -1,6 +1,7 @@
package Mojolicious::Command::get;
use Mojo::Base 'Mojolicious::Command';

use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_ignore_case);
use Mojo::DOM;
use Mojo::IOLoop;
use Mojo::JSON;
Expand Down Expand Up @@ -38,15 +39,13 @@ sub run {
my ($self, @args) = @_;

# Options
$self->_options(
\@args,
GetOptionsFromArray \@args,
'C|charset=s' => \my $charset,
'c|content=s' => \(my $content = ''),
'H|header=s' => \my @headers,
'M|method=s' => \(my $method = 'GET'),
'r|redirect' => \my $redirect,
'v|verbose' => \my $verbose
);
'v|verbose' => \my $verbose;
$verbose = 1 if $method eq 'HEAD';

# Headers
Expand Down
3 changes: 2 additions & 1 deletion lib/Mojolicious/Command/routes.pm
Expand Up @@ -2,6 +2,7 @@ package Mojolicious::Command::routes;
use Mojo::Base 'Mojolicious::Command';

use re 'regexp_pattern';
use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_ignore_case);

has description => "Show available routes.\n";
has usage => <<"EOF";
Expand All @@ -15,7 +16,7 @@ sub run {
my ($self, @args) = @_;

# Options
$self->_options(\@args, 'v|verbose' => \my $verbose);
GetOptionsFromArray \@args, 'v|verbose' => \my $verbose;

# Walk and draw
my $routes = [];
Expand Down
3 changes: 2 additions & 1 deletion lib/Mojolicious/Command/test.pm
Expand Up @@ -4,6 +4,7 @@ use Mojo::Base 'Mojolicious::Command';
use Cwd 'realpath';
use FindBin;
use File::Spec::Functions qw(abs2rel catdir splitdir);
use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_ignore_case);
use Mojo::Home;

has description => "Run unit tests.\n";
Expand All @@ -18,7 +19,7 @@ sub run {
my ($self, @args) = @_;

# Options
$self->_options(\@args, 'v|verbose' => sub { $ENV{HARNESS_VERBOSE} = 1 });
GetOptionsFromArray \@args, 'v|verbose' => sub { $ENV{HARNESS_VERBOSE} = 1 };

# Search tests
unless (@args) {
Expand Down

0 comments on commit 399986c

Please sign in to comment.