mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
Command line options added. Code restructured.
This commit is contained in:
parent
b8ed5d1005
commit
583d318c62
@ -1,11 +1,14 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
from optparse import OptionParser
|
||||||
|
from os import listdir, access, X_OK
|
||||||
from os.path import join, isdir
|
from os.path import join, isdir
|
||||||
from subprocess import call
|
from subprocess import call
|
||||||
from os import listdir, access, X_OK
|
from socket import gethostname
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
__version__ = '1.0dev1'
|
__version__ = '1.0dev3'
|
||||||
|
|
||||||
|
|
||||||
spoolfetch_dir = ''
|
spoolfetch_dir = ''
|
||||||
@ -15,8 +18,10 @@ host = 'hostname'
|
|||||||
|
|
||||||
class CmdHandler(object):
|
class CmdHandler(object):
|
||||||
|
|
||||||
def __init__(self, out_stream):
|
def __init__(self, in_stream, out_stream, options):
|
||||||
self.out_stream = out_stream
|
self.out_stream = out_stream
|
||||||
|
self.in_stream = in_stream
|
||||||
|
self.options = options
|
||||||
|
|
||||||
def do_version(self, arg):
|
def do_version(self, arg):
|
||||||
"""
|
"""
|
||||||
@ -94,8 +99,8 @@ class CmdHandler(object):
|
|||||||
do_exit = do_quit
|
do_exit = do_quit
|
||||||
|
|
||||||
|
|
||||||
def handle_input(in_stream, handler, out_stream):
|
def handle_input(self):
|
||||||
for line in in_stream:
|
for line in self.in_stream:
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
line = line.split(' ')
|
line = line.split(' ')
|
||||||
cmd = line[0]
|
cmd = line[0]
|
||||||
@ -109,18 +114,56 @@ def handle_input(in_stream, handler, out_stream):
|
|||||||
if not cmd:
|
if not cmd:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
func = getattr(handler, 'do_%s' % cmd, None)
|
func = getattr(self, 'do_%s' % cmd, None)
|
||||||
if not func:
|
if not func:
|
||||||
commands = [_[3:] for _ in dir(handler) if _.startswith('do_')]
|
commands = [_[3:] for _ in dir(self) if _.startswith('do_')]
|
||||||
print "# Unknown command. Supported commands: %s" % commands
|
print "# Unknown command. Supported commands: %s" % commands
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
func(arg)
|
func(arg)
|
||||||
out_stream.write('\n')
|
self.out_stream.write('\n')
|
||||||
|
|
||||||
|
|
||||||
|
def usage(option, opt, value, parser):
|
||||||
|
parser.print_help()
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
def get_options():
|
||||||
|
"""
|
||||||
|
Parses command-line arguments.
|
||||||
|
"""
|
||||||
|
parser = OptionParser(add_help_option=False)
|
||||||
|
parser.add_option('-p', '--port', dest='port',
|
||||||
|
default=None,
|
||||||
|
help='TCP Port to listen on. (If not specified, use stdin/stdout)')
|
||||||
|
parser.add_option('-d', '--plugin-dir', dest='plugin_dir',
|
||||||
|
default='.',
|
||||||
|
help=('The directory containing the munin-plugins.'
|
||||||
|
' Default: <current dir>'))
|
||||||
|
parser.add_option('-h', '--host', dest='host',
|
||||||
|
help=('The hostname which will be reported in the pluging.'
|
||||||
|
' Default: %s' % gethostname()),
|
||||||
|
default=gethostname())
|
||||||
|
parser.add_option('-s', '--spoolfech-dir', dest='spoolfech_dir',
|
||||||
|
default=None,
|
||||||
|
help='The spoolfetch folder. Default: disabled')
|
||||||
|
parser.add_option('--help', action='callback', callback=usage,
|
||||||
|
help='Shows this help')
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
handle_input(sys.stdin, CmdHandler(sys.stdout), sys.stdout)
|
options, args = get_options()
|
||||||
|
if not options.port:
|
||||||
|
in_stream = sys.stdin
|
||||||
|
out_stream = sys.stdout
|
||||||
|
else:
|
||||||
|
sys.stderr.write("TCP connections not yet supported\n")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
handler = CmdHandler(in_stream, out_stream, options)
|
||||||
|
handler.handle_input()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user