Commit | Line | Data |
660adc3a |
1 | package System::Introspector::Puppet; |
2 | use Moo; |
3 | |
4 | has classes_file => ( |
5 | is => 'ro', |
6 | default => sub { '/var/lib/puppet/state/classes.txt' }, |
7 | ); |
8 | |
9 | has resources_file => ( |
10 | is => 'ro', |
11 | default => sub { '/var/lib/puppet/state/resources.txt' }, |
12 | ); |
13 | |
14 | sub gather { |
15 | my ($self) = @_; |
16 | return { |
17 | classes => $self->_gather_classes, |
18 | resources => $self->_gather_resources, |
19 | }; |
20 | } |
21 | |
22 | sub _gather_resources { |
23 | my ($self) = @_; |
24 | my $file = $self->resources_file; |
25 | open my $fh, '<', $file |
26 | or return { error => "Unable to read $file: $!" }; |
27 | my @lines = <$fh>; |
28 | chomp @lines; |
29 | return [ map { |
30 | m{^(\w+)\[(.*)\]$} |
31 | ? [$1, $2] |
32 | : [error => $_]; |
33 | } @lines ]; |
34 | } |
35 | |
36 | sub _gather_classes { |
37 | my ($self) = @_; |
38 | my $file = $self->classes_file; |
39 | open my $fh, '<', $file |
40 | or return { error => "Unable to read $file: $!" }; |
41 | my @lines = <$fh>; |
42 | chomp @lines; |
43 | return \@lines; |
44 | } |
45 | |
46 | 1; |