1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00

update date librenms_return_optimizer to take input via pipe or post -- and running the command #420

This commit is contained in:
Zane C. Bowers-Hadley
2022-08-11 12:01:16 -05:00
committed by GitHub
parent 41db608ef9
commit a1227bad67

View File

@ -1,17 +1,39 @@
#!/usr/bin/env perl
#Copyright (c) 2022, Zane C. Bowers-Hadley
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without modification,
#are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
#IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
#INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
#THE POSSIBILITY OF SUCH DAMAGE.
use MIME::Base64;
use Gzip::Faster;
use Getopt::Long;
use warnings;
use strict;
use IPC::Cmd qw[ run ];
sub version{
print "lnms_return_optimizer v. 0.0.1\n";
print "librenms_return_optimizer v. 0.0.2\n";
}
my $version;
my $help;
my $extract;
@ -34,7 +56,9 @@ if ($help) {
version;
print '
foo | lnms_return_otimizer
foo | librenms_return_otimizer
librenms_return_otimizer -- /path/to/some/extend -some -args
-e Operate in extract mode instead.
-n Include newlines with the base64.
@ -49,8 +73,16 @@ foo | lnms_return_otimizer
}
my $data = '';
foreach my $line (<STDIN>) {
$data = $data . $line;
if ( ! $extract ) {
if (defined($ARGV[0])) {
my( $success, $error_message, $full_buf, $stdout_buf, $stderr_buf ) =
run( command => \@ARGV, verbose => 0 );
$data=join '', @$full_buf;
}else {
foreach my $line (<STDIN>) {
$data = $data . $line;
}
}
}
if ($extract) {