File Coverage

lib/Rex/Service/NetBSD.pm
Criterion Covered Total %
statement 14 30 46.6
branch 0 4 0.0
condition 0 6 0.0
subroutine 5 7 71.4
pod 0 2 0.0
total 19 49 38.7


line stmt bran cond sub pod time code
1             #
2             # (c) Jan Gehring
3             #
4              
5             package Rex::Service::NetBSD;
6              
7 1     1   18 use v5.12.5;
  1         6  
8 1     1   12 use warnings;
  1         6  
  1         47  
9              
10             our $VERSION = '1.14.2.2'; # TRIAL VERSION
11              
12 1     1   6 use Rex::Commands::File;
  1         2  
  1         16  
13 1     1   6 use Rex::Logger;
  1         2  
  1         8  
14              
15 1     1   46 use base qw(Rex::Service::Base);
  1         3  
  1         435  
16              
17             sub new {
18 0     0 0   my $that = shift;
19 0   0       my $proto = ref($that) || $that;
20 0           my $self = $proto->SUPER::new(@_);
21              
22 0           bless( $self, $proto );
23              
24             $self->{commands} = {
25 0           start => '/etc/rc.d/%s onestart',
26             restart => '/etc/rc.d/%s onerestart',
27             stop => '/etc/rc.d/%s onestop',
28             reload => '/etc/rc.d/%s onereload',
29             status => '/etc/rc.d/%s onestatus',
30             action => '/etc/rc.d/%s %s',
31             };
32              
33 0           return $self;
34             }
35              
36             sub ensure {
37 0     0 0   my ( $self, $service, $options ) = @_;
38              
39 0           my $what = $options->{ensure};
40              
41 0 0 0       if ( $what =~ /^stop/ ) {
    0          
42 0           $self->stop( $service, $options );
43 0           file "/etc/rc.conf.d/${service}", ensure => "absent";
44 0           delete_lines_matching "/etc/rc.conf",
45             matching => qr/^\s*${service}="?((?i)YES)"?/;
46             }
47             elsif ( $what =~ /^start/ || $what =~ m/^run/ ) {
48 0           $self->start( $service, $options );
49 0           file "/etc/rc.conf.d/${service}", ensure => "absent";
50 0           append_or_amend_line "/etc/rc.conf",
51             line => "${service}=YES",
52             regexp => qr/^\s*${service}="?((?i)YES|NO)"?/;
53             }
54              
55 0           return 1;
56             }
57              
58             1;