1 #!/usr/bin/env python |
|
2 |
|
3 """ |
|
4 Test Irk |
|
5 """ |
|
6 |
|
7 __version__ = '0.1' |
|
8 |
|
9 import pvl.args |
|
10 import pvl.irk |
|
11 |
|
12 import sys, pvl.syslog.tail # XXX: for sys.stdin |
|
13 |
|
14 import logging, optparse |
|
15 |
|
16 log = logging.getLogger('main') |
|
17 |
|
18 def parse_options (argv) : |
|
19 """ |
|
20 Parse command-line arguments. |
|
21 """ |
|
22 |
|
23 prog = argv[0] |
|
24 |
|
25 parser = optparse.OptionParser( |
|
26 prog = prog, |
|
27 usage = '%prog: [options]', |
|
28 version = __version__, |
|
29 |
|
30 # module docstring |
|
31 description = __doc__, |
|
32 ) |
|
33 |
|
34 # options |
|
35 parser.add_option_group(pvl.args.parser(parser)) |
|
36 parser.add_option_group(pvl.irk.parser(parser)) |
|
37 |
|
38 parser.add_option('--join', action='store_true', help="Join given targets") |
|
39 parser.add_option('--part', action='store_true', help="Part given targets") |
|
40 |
|
41 # parse |
|
42 options, args = parser.parse_args(argv[1:]) |
|
43 |
|
44 # apply |
|
45 pvl.args.apply(options, prog) |
|
46 |
|
47 return options, args |
|
48 |
|
49 def main (argv) : |
|
50 options, args = parse_options(argv) |
|
51 |
|
52 log.info("Connect IRK..") |
|
53 irker = pvl.irk.apply(options) |
|
54 |
|
55 log.info("Load targets...") |
|
56 targets = [irker.target(target, join=options.join) for target in args] |
|
57 |
|
58 log.info("Send messages...") |
|
59 for line in pvl.syslog.file.File(sys.stdin) : |
|
60 log.info("%s", line) |
|
61 |
|
62 for target in targets : |
|
63 target(line) |
|
64 |
|
65 if options.part : |
|
66 for target in targets : |
|
67 target.part() |
|
68 |
|
69 # done |
|
70 log.info("Exiting...") |
|
71 return 0 |
|
72 |
|
73 if __name__ == '__main__': |
|
74 import sys |
|
75 |
|
76 sys.exit(main(sys.argv)) |
|