diff options
Diffstat (limited to 'SiteSummary.pm')
| -rw-r--r-- | SiteSummary.pm | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/SiteSummary.pm b/SiteSummary.pm index f86bb3d..4db2953 100644 --- a/SiteSummary.pm +++ b/SiteSummary.pm @@ -9,6 +9,7 @@ our $VERSION = 0.01;  our @ISA     = qw(Exporter);  our @EXPORT  = qw(                    for_all_hosts +                  get_default_route                    get_filepath_current                    get_hostclass                    get_site @@ -22,6 +23,8 @@ our @EXPORT  = qw(                    get_debian_edu_profile                    get_debian_edu_ver                    get_hardware_info +                  is_laptop +                  is_pkg_installed                    );  my $pwd = "/var/lib/sitesummary/entries";  # Path to the entries @@ -122,6 +125,22 @@ sub get_macaddresses {      }  } +# Return current default route used on host +sub get_default_route { +    my $hostid = shift; +    my $path = get_filepath_current($hostid, "/system/route-n"); +    if (open(my $fh, $path)) { +        while (<$fh>) { +            if (m/^0.0.0.0\s+(\S+)\s+/) { +                close($fh); +                return $1; +            } +        } +        close($fh); +    } +    return undef; +} +  #  # Return the IP address on the primary network interface  # @@ -262,6 +281,28 @@ sub get_hardware_info {      }  } +sub is_pkg_installed { +    my ($hostid, $pkgname) = @_; +    # Check debian/dpkg-l for 'ii *pkgname ' +    my $path = get_filepath_current($hostid, "/debian/dpkg-l"); +    if (open (my $fh, $path)) { +        while(<$fh>) { +            if (m/^ii *$pkgname /) { +                close($fh); +                return 1 +            } +        } +        close($fh); +    } +    return undef; +} + +sub is_laptop { +    my $hostid = shift; +    my $path = get_filepath_current($hostid, "/system/laptop"); +    return -e $path; +} +  sub for_all_hosts {      my $callback = shift;  | 
