X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2FUtils.pm;h=9666d81d3e7ef3d1c3e28dd4a8d67e3bd1afd357;hb=efa02464713db02292cc598bbb83411b71bb8b9f;hp=acebce5074f634f4608c90ddd4b8e64fdc60083c;hpb=741c2b2cf2529abe150429f0f9ccd5f4f9b19c90;p=clearscm.git diff --git a/lib/Utils.pm b/lib/Utils.pm index acebce5..9666d81 100644 --- a/lib/Utils.pm +++ b/lib/Utils.pm @@ -74,6 +74,7 @@ our @EXPORT = qw ( GetChildren GetPassword InArray + LoadAvg PageOutput PipeOutput PipeOutputArray @@ -430,6 +431,60 @@ Returns: return $FALSE; } # InArray +sub LoadAvg () { + +=pod + +=head2 LoadAvg () + +Return an array of the 1, 5, and 15 minute load averages. + +Parameters: + +=for html
+ +=over + +=item none + +=back + +=for html+ +Returns: + +=for html
+ +=over + +=item An array of the 1, 5, and 15 minute load averages in a list context. +In a scalar context just the 1 minute load average. + +=back + +=for html+ +=cut + + # TODO: Make it work on Windows... + return if $^O =~ /win/i; + + open my $loadAvg, '/proc/loadavg' + or croak "Unable to open /proc/loadavg\n"; + + my $load = <$loadAvg>; + + close $loadAvg; + + my @loadAvgs = split /\s/, $load; + + if (wantarray) { + return @loadAvgs; + } else { + return $loadAvgs[0]; # This is the 1 minute average + } +} # LoadAvg + our $pipe; sub StartPipe ($;$) { @@ -529,7 +584,7 @@ Returns: =cut - open my $pipe, '|-', $to + open my $pipe, '|', $to or error "Unable to open pipe - $!", 1; foreach (@output) {