| #!/usr/bin/env python |
| |
| import argparse |
| import unstable |
| import format as formatlog |
| import logmerge |
| |
| def get_parser(): |
| parser = argparse.ArgumentParser("structlog", |
| description="Tools for dealing with structured logs") |
| |
| commands = {"unstable": (unstable.get_parser, unstable.main), |
| "format": (formatlog.get_parser, formatlog.main), |
| "logmerge": (logmerge.get_parser, logmerge.main)} |
| |
| sub_parser = parser.add_subparsers(title='Subcommands') |
| |
| for command, (parser_func, main_func) in commands.iteritems(): |
| parent = parser_func(False) |
| command_parser = sub_parser.add_parser(command, |
| description=parent.description, |
| parents=[parent]) |
| command_parser.set_defaults(func=main_func) |
| |
| return parser |
| |
| def main(): |
| parser = get_parser() |
| args = parser.parse_args() |
| args.func(**vars(args)) |