Commit | Line | Data |
f473f1c2 |
1 | package System::Introspector::Host; |
2 | use Moo; |
3 | |
4 | sub gather { |
5 | my ($self) = @_; |
6 | return { |
7 | hostname => $self->_gather_hostname, |
8 | uname => $self->_gather_uname_info, |
9 | }; |
10 | } |
11 | |
12 | my @UnameFields = qw( |
13 | kernel_name |
14 | kernel_release |
15 | kernel_version |
16 | nodename |
17 | machine |
18 | processor |
19 | hardware_platform |
20 | operating_system |
21 | ); |
22 | |
23 | sub _gather_uname_info { |
24 | my ($self) = @_; |
25 | my %uname; |
26 | for my $field (@UnameFields) { |
27 | (my $option = $field) =~ s{_}{-}g; |
28 | my $value = `uname --$option`; |
29 | chomp $value; |
30 | $uname{ $field } = $value; |
31 | } |
32 | return \%uname; |
33 | } |
34 | |
35 | sub _gather_hostname { |
36 | my ($self) = @_; |
37 | open my $fh, '<', '/etc/hostname' |
38 | or die "Unable to read /etc/hostname: $!\n"; |
39 | my $hostname = <$fh>; |
40 | chomp $hostname; |
41 | return $hostname; |
42 | } |
43 | |
44 | 1; |