use Moose::Role;
use MooseX::Types::Path::Class;
-our $VERSION = 0.06;
+our $VERSION = "0.10";
with 'MooseX::Daemonize::WithPidFile',
'MooseX::Getopt';
-
-use constant OK => 0;
-use constant ERROR => 1;
+
+sub OK () { 0 }
+sub ERROR () { 1 }
has progname => (
metaclass => 'Getopt',
coerce => 1,
required => 1,
lazy => 1,
- default => sub { Path::Class::Dir->new('var', 'run') },
+ default => sub { Path::Class::Dir->new('', 'var', 'run') },
);
has basedir => (
$self->clear_exit_code;
if ($self->pidfile->is_running) {
- $self->exit_code(OK);
- $self->status_message('Daemon is already running with pid (' . $self->pidfile->pid . ')');
+ $self->exit_code($self->OK);
+ $self->status_message('Daemon is already running with pid (' . $self->pidfile->pid . ')');
return !($self->exit_code);
}
-
- if ($self->foreground) {
+
+ if ($self->foreground) {
$self->is_daemon(1);
}
- else {
- eval { $self->daemonize };
+ else {
+ eval { $self->daemonize };
if ($@) {
- $self->exit_code(ERROR);
+ $self->exit_code($self->ERROR);
$self->status_message('Start failed : ' . $@);
return !($self->exit_code);
}
}
unless ($self->is_daemon) {
- $self->exit_code(OK);
+ $self->exit_code($self->OK);
$self->status_message('Start succeeded');
return !($self->exit_code);
}
$self->clear_exit_code;
if ($self->pidfile->is_running) {
- $self->exit_code(OK);
- $self->status_message('Daemon is running with pid (' . $self->pidfile->pid . ')');
+ $self->exit_code($self->OK);
+ $self->status_message('Daemon is running with pid (' . $self->pidfile->pid . ')');
}
- else {
- $self->exit_code(ERROR);
+ else {
+ $self->exit_code($self->ERROR);
$self->status_message('Daemon is not running with pid (' . $self->pidfile->pid . ')');
}
$self->clear_exit_code;
unless ($self->stop) {
- $self->exit_code(ERROR);
+ $self->exit_code($self->ERROR);
$self->status_message('Restart (Stop) failed : ' . $@);
}
unless ($self->start) {
- $self->exit_code(ERROR);
+ $self->exit_code($self->ERROR);
$self->status_message('Restart (Start) failed : ' . $@);
}
- if ($self->exit_code == OK) {
- $self->exit_code(OK);
+ if ($self->exit_code == $self->OK) {
+ $self->exit_code($self->OK);
$self->status_message("Restart successful");
}
eval { $self->$_kill($self->pidfile->pid) };
# and complain if we can't ...
if ($@) {
- $self->exit_code(ERROR);
+ $self->exit_code($self->ERROR);
$self->status_message('Stop failed : ' . $@);
}
# or gloat if we succeed ..
else {
- $self->exit_code(OK);
+ $self->exit_code($self->OK);
$self->status_message('Stop succeeded');
}
# this just returns the OK
# exit code for now, but
# we should make this overridable
- $self->exit_code(OK);
+ $self->exit_code($self->OK);
$self->status_message("Not running");
}
=item I<pidbase Path::Class::Dir | Str>
-The base for our bid, defaults to C</var/run/$progname>
+The base for our PID, defaults to C</var/run/>
=item I<pidfile MooseX::Daemonize::Pid::File | Str>
-The file we store our PID in, defaults to C</var/run/$progname>
+The file we store our PID in, defaults to C<$pidbase/$progname.pid>
=item I<foreground Bool>
=back
+=head2 Exit Code Methods
+
+These are overriable constant methods used for setting the exit code.
+
+=over 4
+
+=item OK
+
+Returns 0.
+
+=item ERROR
+
+Returns 1.
+
+=back
+
=head2 Introspection
=over 4
=head1 AUTHORS
-Chris Prather C<< <perigrin@cpan.org> >>
+Chris Prather C<< <chris@prather.org >>
Stevan Little C<< <stevan.little@iinteractive.com> >>
=head1 LICENCE AND COPYRIGHT
-Copyright (c) 2007, Chris Prather C<< <perigrin@cpan.org> >>. All rights
+Copyright (c) 2007-2010, Chris Prather C<< <chris@prather.org> >>. Some rights
reserved.
This module is free software; you can redistribute it and/or