File Coverage

blib/lib/charm.pm
Criterion Covered Total %
statement 94 95 98.9
branch 1 2 50.0
condition n/a
subroutine 22 22 100.0
pod n/a
total 117 119 98.3


line stmt bran cond sub pod time code
1             package charm;
2              
3 1     1   1511 use strict;
  1         3  
  1         28  
4 1     1   5 use warnings;
  1         2  
  1         30  
5 1     1   438 no bareword::filehandles;
  1         2857  
  1         7  
6              
7 1     1   486 use true ();
  1         5300  
  1         25  
8 1     1   7 use feature ();
  1         2  
  1         13  
9 1     1   855 use Path::Tiny ();
  1         10967  
  1         25  
10 1     1   9 use Test::More ();
  1         3  
  1         14  
11 1     1   615 use Rex ();
  1         51699  
  1         27  
12 1     1   14 use Rex::Commands ();
  1         17418  
  1         28  
13 1     1   13 use Rex::Commands::File ();
  1         40457  
  1         26  
14 1     1   9 use Rex::Commands::Fs ();
  1         1  
  1         14  
15 1     1   5 use Rex::Commands::MD5 ();
  1         2  
  1         13  
16 1     1   10 use Rex::Commands::Network ();
  1         44201  
  1         23  
17 1     1   14 use Rex::Commands::Notify ();
  1         1050  
  1         23  
18 1     1   12 use Rex::Commands::Pkg ();
  1         7416  
  1         21  
19 1     1   6 use Rex::Commands::Run ();
  1         21  
  1         15  
20 1     1   9 use Rex::Commands::SCM ();
  1         1397  
  1         23  
21 1     1   12 use Rex::Commands::Service ();
  1         4561  
  1         22  
22 1     1   11 use Rex::Commands::User ();
  1         4240  
  1         21  
23              
24 1     1   13 use Sub::Install;
  1         2547  
  1         5  
25 1     1   53 use Import::Into;
  1         3781  
  1         10  
26              
27             sub import {
28 2     2   18 my $target = caller;
29 2         6 my $class = shift;
30              
31 2         6 my @flags = grep /^-\w+/, @_;
32 2         6 my %flags = map +($_, 1), map substr($_, 1), @flags;
33              
34 2         13 'strict'->import::into($target);
35 2         412 'warnings'->import::into($target);
36 2         341 'English'->import::into($target, '-no_match_vars');
37              
38 2         4286 warnings->unimport('once');
39 2         24 warnings->unimport('experimental');
40 2         26 warnings->unimport('experimental::signatures');
41 2         17 warnings->unimport('reserved');
42              
43 2         259 feature->import(':5.24');
44 2         19 feature->import('signatures');
45 2         40 true->import;
46              
47 2         2542 Rex->import::into($target, '-feature' => [qw(no_path_cleanup disable_taskname_warning)]);
48 2         111123 Rex::Commands->import::into($target);
49 2         1816 Rex::Commands::File->import::into($target);
50 2         705 Rex::Commands::Fs->import::into($target);
51 2         1064 Rex::Commands::MD5->import::into($target);
52 2         444 Rex::Commands::Network->import::into($target);
53 2         577 Rex::Commands::Notify->import::into($target);
54 2         455 Rex::Commands::Pkg->import::into($target);
55 2         614 Rex::Commands::Run->import::into($target);
56 2         475 Rex::Commands::SCM->import::into($target);
57 2         519 Rex::Commands::Service->import::into($target);
58 2         427 Rex::Commands::User->import::into($target);
59 2         699 Path::Tiny->import::into($target, qw(path cwd));
60              
61 2 50       516 if ($flags{tester}) {
62 0         0 Test::More->import::into($target);
63             }
64              
65             # overrides
66 2         27 require 'App/CharmKit.pm';
67 2         15 'App::CharmKit'->import::into($target);
68              
69 2         561 Sub::Install::install_sub(
70             { code => 'run',
71             from => 'Rex::Commands::Run',
72             into => $target,
73             as => 'sh',
74             }
75             );
76             }
77              
78              
79             1;