document is_daemon
Chris Prather [Tue, 11 Sep 2007 09:44:52 +0000 (09:44 +0000)]
r28840@alice-3:  perigrin | 2007-09-11 04:45:00 -0500
more patches from dec

Changes
lib/MooseX/Daemonize.pm
t/perlcritic.t

diff --git a/Changes b/Changes
index 2424740..919fcc9 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,10 @@
 Revision history for MooseX-Daemonize
 
 0.02 ???
+       - Fixed bug where sometimes the pidfile is writeable but pidbase is not --  reported by dec 
+    - Fixed bug where the pidfile wasn't being updated properly --  reported by dec 
+       - Added is_daemon attribute
+       - Added another fork to make sure we short circuit out of the daemonize process properly
        - Switch to File::Pid
     - Add the GetOpt prereq
        - Adjust the kill timings
index 2a12ce8..a59f794 100644 (file)
@@ -50,8 +50,8 @@ has pidfile => (
     coerce    => 1,
     predicate => 'has_pidfile',
     default   => sub {
-        die 'Cannot write to ' . $_[0]->pidbase unless -w $_[0]->pidbase;
         my $file = $_[0]->pidbase . '/' . $_[0]->progname . '.pid';
+        die "Cannot write to $file" unless (-e $file ? -w $file : -w $_[0]->pidbase);
         File::Pid->new( { file => $file } );
     },
     handles => {
@@ -226,6 +226,10 @@ The file we store our PID in, defaults to /var/run/$progname/
 
 If true, the process won't background. Useful for debugging. This option can be set via Getopt's -f.
 
+=item is_daemon Bool
+
+If true, the process is the backgrounded process. This is useful for example in an after 'start' => sub { } block
+
 =back
 
 =head1 METHODS 
index 7e7b210..00999d9 100644 (file)
@@ -1,6 +1,7 @@
 #!perl
-
-if (!require Test::Perl::Critic) {
+use Test::More;
+eval "require Test::Perl::Critic";
+if (! $@) {
     Test::More::plan(
         skip_all => "Test::Perl::Critic required for testing PBP compliance"
     );