Perl Modul Nagios::Plugin and extra-opts - request for comments
Stephan <[email protected]>
| Newsgroups | gmane.network.nagios.plugins.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi!
Holger Weiß asked me to introduce here what I intend to do.
I lately started to use Nagios::Plugin for a plugin I developed at work.
I came across the --extra-opts parameter and thought that this could be
very helpful.
Unfortunately I seem to found a bug - or at least - inconsistant behaviour.
When you pass on commandline something like --opt "test value" you get
in your variable:
test value
But if you put into the extra-opts file
opt="test value"
you get
"test value"
Okay, I could live with the plugin not removing the quotes, so I put
into the extra-opts file
opt=test vale
But guess what I got:
"test value"
So N::P is introducing quotes here.
So my first idea is to get rid of those quotes.
Unfortunately this will break some of the tests, as they rely on the sub
_cmdline which generates, from the internal options array, a commandline.
But this sub is, as far as I can see, only used for this test and
nowhere else.
Additionally the quoting is done wrong or at least for an OS I don't
know as quotes inside the string are not escaped. So this
opt=a 2.5" hard disc
becomes
"a 2.5" hard disc"
So the questions I have are:
1) For what reason was the quoting introduced - except for the tests?
2) For which platform is it intended? For sure no *IX
3) Is it required?
I'd vote for getting rid of the quoting.
My second idea is to introduce multiline values in the extra-opts file.
This would simply be done in the usual way, by putting a backslash "\"
as last charater of the line. All the lines will be concatenated by a
single space after first triming them. So
opt=multi \
line \
value
would become
multi line value
Last but not lest I'd like to introduce a HERE-document like syntax in
conformance to Config::General. Example:
opt=<<HERE
line 1
line 2
line 3
HERE
would become
line1\nline 2\nline 3\n
and, as the amount of whitespace before the end-marker is removed from
all the lines:
opt=<<HERE
line 1
line 2
line 3
HERE
would become
line1\n line2\nline 3\n
What do you think about my ideas?
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________________
Nagios Plugin Development Mailing List Nagiosplug-devel-5NWGOfrQmneRv+LV9MX5upmplPMkL2fr@public.gmane.orget
Unsubscribe at https://lists.sourceforge.net/lists/listinfo/nagiosplug-devel
::: Please include plugins version (-v) and OS when reporting any issue.
::: Messages without supporting info will risk being sent to /dev/null