From bb1808b1ef92af9a14a073f2e14973ac132b7e7e Mon Sep 17 00:00:00 2001 From: David Phillips Date: Tue, 10 Apr 2018 15:06:10 +1200 Subject: Add command modules, map command --- plugin/map.pm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 plugin/map.pm (limited to 'plugin/map.pm') diff --git a/plugin/map.pm b/plugin/map.pm new file mode 100644 index 0000000..f8cb256 --- /dev/null +++ b/plugin/map.pm @@ -0,0 +1,34 @@ +#!/usr/bin/env perl + +package plugin::map; + +use strict; +use warnings; + +my %config; +my $run_command; + + +sub configure { + my $self = shift; + my $cmdref = shift; + my $cref = shift; + %config = %$cref; + $run_command = shift; + + $cmdref->("map", sub { $self->map(@_); } ); + + return $self; +} + +sub map { + my ($self, $logger, $who, $where, $rest, @arguments) = @_; + my ($command, $subjects) = ($rest =~ /^(.+?)\s+(.*)$/); + + return "[]" unless $subjects; + + my @array = map { $run_command->("$command $_", $who, $where) } (split /,/, $subjects); + + return "[" . (join ", ", @array). "]"; +} +1; -- cgit v1.1