terom@81: #!/usr/bin/env python terom@81: terom@81: """ terom@81: Test Irk terom@81: """ terom@81: terom@81: __version__ = '0.1' terom@81: terom@81: import pvl.args terom@81: import pvl.irk terom@81: terom@81: import sys, pvl.syslog.tail # XXX: for sys.stdin terom@81: terom@81: import logging, optparse terom@81: terom@81: log = logging.getLogger('main') terom@81: terom@81: def parse_options (argv) : terom@81: """ terom@81: Parse command-line arguments. terom@81: """ terom@81: terom@81: prog = argv[0] terom@81: terom@81: parser = optparse.OptionParser( terom@81: prog = prog, terom@81: usage = '%prog: [options]', terom@81: version = __version__, terom@81: terom@81: # module docstring terom@81: description = __doc__, terom@81: ) terom@81: terom@81: # options terom@81: parser.add_option_group(pvl.args.parser(parser)) terom@81: parser.add_option_group(pvl.irk.parser(parser)) terom@135: terom@135: parser.add_option('--join', action='store_true', help="Join given targets") terom@135: parser.add_option('--part', action='store_true', help="Part given targets") terom@81: terom@81: # parse terom@81: options, args = parser.parse_args(argv[1:]) terom@81: terom@81: # apply terom@81: pvl.args.apply(options, prog) terom@81: terom@81: return options, args terom@81: terom@81: def main (argv) : terom@81: options, args = parse_options(argv) terom@81: terom@81: log.info("Connect IRK..") terom@81: irker = pvl.irk.apply(options) terom@81: terom@81: log.info("Load targets...") terom@135: targets = [irker.target(target, join=options.join) for target in args] terom@81: terom@81: log.info("Send messages...") terom@133: for line in pvl.syslog.file.File(sys.stdin) : terom@81: log.info("%s", line) terom@81: terom@81: for target in targets : terom@81: target(line) terom@81: terom@135: if options.part : terom@135: for target in targets : terom@135: target.part() terom@135: terom@81: # done terom@81: log.info("Exiting...") terom@81: return 0 terom@81: terom@81: if __name__ == '__main__': terom@81: import sys terom@81: terom@81: sys.exit(main(sys.argv))