use Pod::Usage;
use Moose;
#use Catalyst::Engine::HTTP;
-use namespace::autoclean -except => [ qw(meta) ];
+use namespace::autoclean;
with 'MooseX::Getopt';
+has debug => (
+ traits => [qw(Getopt)],
+ cmd_aliases => 'd',
+ isa => 'Bool',
+ is => 'ro',
+ documentation => qq{
+ -d --debug force debug mode
+ }
+
+);
+
has help => (
traits => [qw(Getopt)],
cmd_aliases => 'h',
isa => 'Bool',
is => 'ro',
- required => 0,
- default => 0,
+ documentation => qq{
+ -h --help display this help and exits
+ },
);
has host => (
isa => 'Str',
is => 'ro',
- required => 0,
+ ,
default => "localhost"
);
cmd_aliases => 'f',
isa => 'Bool',
is => 'ro',
- required => 0
+
);
has listen => (
cmd_aliases => 'l',
isa => 'Int',
is => 'ro',
- required => 0,
+ ,
default => "3000"
);
cmd_aliases => 'pid',
isa => 'Str',
is => 'ro',
- required => 0
+
);
has keepalive => (
cmd_aliases => 'k',
isa => 'Bool',
is => 'ro',
- required => 0,
- default => 0
+ ,
+
);
has background => (
cmd_aliases => 'bg',
isa => 'Bool',
is => 'ro',
- required => 0
);
-## broken now, WHY?!
-has app => (
+has _app => (
+ reader => 'app',
+ init_arg => 'app',
traits => [qw(NoGetopt)],
isa => 'Str',
is => 'ro',
- required => 1,
);
has restart => (
cmd_aliases => 'r',
isa => 'Bool',
is => 'ro',
- required => 0
+
);
has restart_delay => (
cmd_aliases => 'rdel',
isa => 'Int',
is => 'ro',
- required => 0
+
);
has restart_regex => (
cmd_aliases => 'rxp',
isa => 'Str',
is => 'ro',
- required => 0
+
);
has follow_symlinks => (
cmd_aliases => 'sym',
isa => 'Bool',
is => 'ro',
- required => 0
+
);
+sub usage {
+ my ($self) = shift;
+
+ return pod2usage();
+
+}
+
my @argv = @ARGV;
sub run {
my $self = shift;
- pod2usage() if $self->help;
- warn "app is undef!" unless defined $self->app;
+ $self->usage if $self->help;
my $app = $self->app;
Class::MOP::load_class($app);
$app->run(
}
+no Moose;
+__PACKAGE__->meta->make_immutable;
1;