From 8bc973db6d3a21d23bb1f9fac0573c5e438768fd Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 1 Jun 2014 21:13:03 +0200 Subject: -ld: improve output format. TODO: -vv and -vvv --- Changelog | 2 +- bin/icli | 35 ++++++++++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/Changelog b/Changelog index 4e0c515..90f12e0 100644 --- a/Changelog +++ b/Changelog @@ -6,7 +6,7 @@ git HEAD -aa/ -a acknowledge, -r/--recheck with -ar / -a recheck and -u/--force-recheck wiht -aR / -a force_recheck * add -ad / -a downtime option to schedule host/service downtimes - * Also show service downtimes when using --list downtimes + * Also show service downtimes when using -ld, improve its output icli 0.47 - Thu May 29 2014 diff --git a/bin/icli b/bin/icli index b601f8e..9bfa94a 100755 --- a/bin/icli +++ b/bin/icli @@ -95,6 +95,12 @@ sub pretty_duration { my $now = time(); my $dif = $now - $since; + return pretty_duration_abs($dif); +} + +sub pretty_duration_abs { + my ($dif) = @_; + return sprintf( '%dd %dh %dm %ds', int( $dif / ( 24 * 3600 ) ), int( ( $dif / 3600 ) % 24 ), @@ -619,15 +625,19 @@ sub display_downtime { pretty_date( $d->{'entry_time'} ), $d->{'author'}, ); } - if ( $v >= 2 ) { - printf( ' %-30.30s', $d->{'comment'} ); - } - printf( ' %s %s', + printf( + ' %-20.20s %-20.20s', pretty_date( $d->{'start_time'} ), pretty_date( $d->{'end_time'} ), ); if ( $v >= 2 ) { - print( $d->{'fixed'} ? ' Fixed' : ' Flexi' ); + printf( '%-17.17s', + $d->{'fixed'} + ? ' Fixed' + : ' ' . pretty_duration_abs( $d->{duration} ) ); + } + if ( $v >= 2 ) { + print( $d->{comment} ); } print "\n"; @@ -1111,10 +1121,25 @@ elsif ( $list_type eq 'q' ) { } elsif ( $list_type eq 'd' ) { say "Host downtimes:"; + if ( $verbosity == 1 ) { + printf( "%-25.25s %-20.20s %-20.20s\n", 'Host', 'start', 'stop' ); + } + elsif ( $verbosity == 2 ) { + printf( "%-25.25s %-20.20s %-20.20s %-17.17s %s\n", + 'Host', 'start', 'stop', 'duration', 'comment' ); + } foreach my $downtime ( @{ $data->{hostdowntimes} } ) { display_downtime($downtime); } say "\nService downtimes:"; + if ( $verbosity == 1 ) { + printf( "%-25.25s %-25.25s %-20.20s %-20.20s\n", + 'Host', 'Service', 'start', 'stop' ); + } + elsif ( $verbosity == 2 ) { + printf( "%-25.25s %-25.25s %-20.20s %-20.20s %-17.17s %s\n", + 'Host', 'Service', 'start', 'stop', 'duration', 'comment' ); + } foreach my $downtime ( @{ $data->{servicedowntimes} } ) { display_downtime($downtime); } -- cgit v1.2.3