#! /usr/bin/perl use strict ; use warnings ; package Probe::Repo_stats ; use base 'Probe' ; # repo_users int repo_stats users # repo_projs int repo_stats projs # repo_size int repo_stats size # repo_bups int repo_stats bups sub ITEMS { [ { name => 'repo_users' , kind => 'int' , args => [ qw(users) ] } , { name => 'repo_projs' , kind => 'int' , args => [ qw(projs) ] } , { name => 'repo_size' , kind => 'gbs' , args => [ qw(size) ] } , { name => 'repo_bups' , kind => 'int' , args => [ qw(bups) ] } ] ; } ; sub main { my $self = shift ; my $itms = shift ; # items to probe : [ item, ... ] my $clnt = shift ; # main::CLIENT my @prog = ( '/local/bin/repo-stats' ) ; my ( $err, $xit, $sig, @lines ) = Probe::Util::run_prog ( @prog ) ; if ( $err ) { $_ -> perr ( $err ) for @$itms ; } else { my %data = () ; for my $line ( @lines ) { chomp $line ; my ( $key, $val ) = split ' ', $line ; $data { $key } = $val ; } for my $item ( sort { $a -> name cmp $b -> name } @$itms ) { my $key = $item -> args -> [ 0 ] ; $item -> set_val ( $data { $key } ) ; } } } 1 ;