come basic changes;
[gitmo/MooseX-Daemonize.git] / lib / MooseX / Daemonize / PidFile.pm
CommitLineData
2eced271 1package MooseX::Daemonize::PidFile;
2use strict; # because Kwalitee is pedantic
3use Moose;
4use MooseX::Types::Path::Class;
5
6our $VERSION = '0.01';
7
8has 'pid' => (
9 is => 'rw',
10 isa => 'Int',
11 lazy => 1,
12 default => sub {
13 my $self = shift;
14 $self->does_file_exist
15 ? $self->file->slurp(chomp => 1)
16 : $$
17 }
18);
19
20has 'file' => (
21 is => 'ro',
22 isa => 'Path::Class::File',
23 coerce => 1,
24 required => 1,
25 handles => [ 'remove' ]
26);
27
28sub does_file_exist { -s (shift)->file }
29
30sub write {
31 my $self = shift;
32 $self->file->openw->print($self->pid);
33}
34
35sub running {
36 my $self = shift;
37 $self->does_file_exist
38 ? (kill(0, $self->pid) ? 1 : 0)
39 : 0;
40}
41
421;
43
44__END__
45
46=pod
47
48=head1 NAME
49
50MooseX::Daemonize::PidFile - PID file management for MooseX::Daemonize
51
52=head1 SYNOPSIS
53
54=head1 DESCRIPTION
55
56=head1 ATTRIBUTES
57
58=over
59
60=item pid Int
61
62=item file Path::Class::File | Str
63
64=back
65
66=head1 METHODS
67
68=over
69
70=item remove
71
72=item write
73
74=item does_file_exist
75
76=item running
77
78=item meta()
79
80The C<meta()> method from L<Class::MOP::Class>
81
82=back
83
84=head1 DEPENDENCIES
85
86Obviously L<Moose>
87
88=head1 INCOMPATIBILITIES
89
90None reported.
91
92=head1 BUGS AND LIMITATIONS
93
94No bugs have been reported.
95
96Please report any bugs or feature requests to
97C<bug-acme-dahut-call@rt.cpan.org>, or through the web interface at
98L<http://rt.cpan.org>.
99
100=head1 AUTHOR
101
102Stevan Little C<< <stevan@cpan.org> >>
103
104=head1 LICENCE AND COPYRIGHT
105
106Copyright (c) 2007, Chris Prather C<< <perigrin@cpan.org> >>. All rights
107reserved.
108
109This module is free software; you can redistribute it and/or
110modify it under the same terms as Perl itself. See L<perlartistic>.
111
112
113=head1 DISCLAIMER OF WARRANTY
114
115BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
116FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
117OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
118PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
119EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
120WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
121ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
122YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
123NECESSARY SERVICING, REPAIR, OR CORRECTION.
124
125IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
126WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
127REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE
128LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
129OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
130THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
131RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
132FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
133SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
134SUCH DAMAGES.
135
136=cut