File Coverage

blib/lib/Sys/Bprsync/Cmd/Command/run.pm
Criterion Covered Total %
statement 11 13 84.6
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 16 18 88.8


line stmt bran cond sub pod time code
1             package Sys::Bprsync::Cmd::Command::run;
2             {
3             $Sys::Bprsync::Cmd::Command::run::VERSION = '0.25';
4             }
5             BEGIN {
6 1     1   6977 $Sys::Bprsync::Cmd::Command::run::AUTHORITY = 'cpan:TEX';
7             }
8             # ABSTRACT: run all pending sync jobs
9              
10 1     1   28 use 5.010_000;
  1         6  
  1         37  
11 1     1   6 use mro 'c3';
  1         2  
  1         6  
12 1     1   32 use feature ':5.10';
  1         2  
  1         322  
13              
14 1     1   661 use Moose;
  0            
  0            
15             use namespace::autoclean;
16              
17             # use IO::Handle;
18             # use autodie;
19             # use MooseX::Params::Validate;
20             # use Carp;
21             # use English qw( -no_match_vars );
22             # use Try::Tiny;
23             use Linux::Pidfile;
24             use Sys::Bprsync;
25              
26             # extends ...
27             extends 'Sys::Bprsync::Cmd::Command';
28             # has ...
29             has '_pidfile' => (
30             'is' => 'ro',
31             'isa' => 'Linux::Pidfile',
32             'lazy' => 1,
33             'builder' => '_init_pidfile',
34             );
35             # with ...
36             # initializers ...
37             sub _init_pidfile {
38             my $self = shift;
39              
40             my $PID = Linux::Pidfile::->new({
41             'pidfile' => $self->config()->get('Bprsync::Pidfile', { Default => '/var/run/bprsync.pid', }),
42             'logger' => $self->logger(),
43             });
44              
45             return $PID;
46             }
47              
48             # your code here ...
49             sub execute {
50             my $self = shift;
51              
52             $self->_pidfile()->create() or die('Script already running.');
53              
54             my $concurrency = $self->config()->get( 'Sys::Bprsync::Concurrency', { Default => 1, } );
55              
56             my $BP = Sys::Bprsync::->new(
57             {
58             'config' => $self->config(),
59             'logger' => $self->logger(),
60             'logfile' => $self->config()->get( 'Sys::Bprsync::Logfile', { Default => '/tmp/bprsync.log' } ),
61             'concurrency' => $concurrency,
62             }
63             );
64              
65             my $status = $BP->run();
66             $self->_pidfile()->remove();
67              
68             return $status;
69             }
70              
71             sub abstract {
72             return 'Do some syncs';
73             }
74              
75             no Moose;
76             __PACKAGE__->meta->make_immutable;
77              
78             1;
79              
80             __END__
81              
82             =pod
83              
84             =encoding UTF-8
85              
86             =head1 NAME
87              
88             Sys::Bprsync::Cmd::Command::run - run all pending sync jobs
89              
90             =head1 METHODS
91              
92             =head2 execute
93              
94             Run the sync.
95              
96             =head2 DEMOLISH
97              
98             Remove our pidfile.
99              
100             =head2 abstract
101              
102             Workaround
103              
104             =head1 NAME
105              
106             Sys::Bprsync::Cmd::Command::run - run all pending sync jobs
107              
108             =head1 AUTHOR
109              
110             Dominik Schulz <dominik.schulz@gauner.org>
111              
112             =head1 COPYRIGHT AND LICENSE
113              
114             This software is copyright (c) 2012 by Dominik Schulz.
115              
116             This is free software; you can redistribute it and/or modify it under
117             the same terms as the Perl 5 programming language system itself.
118              
119             =cut