diff options
Diffstat (limited to 'bin/icli')
-rwxr-xr-x | bin/icli | 22 |
1 files changed, 20 insertions, 2 deletions
@@ -45,6 +45,17 @@ sub have_service { return 0; } +sub have_service_multi { + my ($host, @services) = @_; + + foreach my $s (@services) { + if (have_service($host, $s)) { + return 1; + } + } + return 0; +} + sub with_colour { my ($text, $colour) = @_; if ($colours) { @@ -254,7 +265,11 @@ sub display_host_services { foreach my $service (@{$data->{services}->{$host}}) { - if ($short and not $service->{current_state}) { + if ( + ($short and not $service->{current_state}) + or (@for_services and not + ($service->{service_description} ~~ [@for_services]) + )) { next; } @@ -370,7 +385,10 @@ if (@for_hosts and $list_type ~~ [qw/s h/]) { } elsif ($list_type eq 's') { foreach my $host (sort keys %{$data->{services}}) { - display_host($host, 1); + if (not (@for_services and not have_service_multi($host, + @for_services))) { + display_host($host, 1); + } } } elsif ($list_type eq 'h') { |