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:
committed by
GitHub
parent
41db608ef9
commit
a1227bad67
@@ -1,17 +1,39 @@
|
|||||||
#!/usr/bin/env perl
|
#!/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 MIME::Base64;
|
||||||
use Gzip::Faster;
|
use Gzip::Faster;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use warnings;
|
use warnings;
|
||||||
use strict;
|
use strict;
|
||||||
|
use IPC::Cmd qw[ run ];
|
||||||
|
|
||||||
sub version{
|
sub version{
|
||||||
print "lnms_return_optimizer v. 0.0.1\n";
|
print "librenms_return_optimizer v. 0.0.2\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
my $version;
|
my $version;
|
||||||
my $help;
|
my $help;
|
||||||
my $extract;
|
my $extract;
|
||||||
@@ -34,7 +56,9 @@ if ($help) {
|
|||||||
version;
|
version;
|
||||||
|
|
||||||
print '
|
print '
|
||||||
foo | lnms_return_otimizer
|
foo | librenms_return_otimizer
|
||||||
|
librenms_return_otimizer -- /path/to/some/extend -some -args
|
||||||
|
|
||||||
|
|
||||||
-e Operate in extract mode instead.
|
-e Operate in extract mode instead.
|
||||||
-n Include newlines with the base64.
|
-n Include newlines with the base64.
|
||||||
@@ -49,9 +73,17 @@ foo | lnms_return_otimizer
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $data = '';
|
my $data = '';
|
||||||
|
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>) {
|
foreach my $line (<STDIN>) {
|
||||||
$data = $data . $line;
|
$data = $data . $line;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($extract) {
|
if ($extract) {
|
||||||
if ($data =~ /^[A-Za-z0-9\/\+\n]+\=*\n*$/ ) {
|
if ($data =~ /^[A-Za-z0-9\/\+\n]+\=*\n*$/ ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user