def get_args(args): description = 'Show new journal entries since last run' parser = argparse.ArgumentParser(description=description) parser.add_argument('-b', action='store_true', default=False, help='process all entries from the current boot') parser.add_argument('-p', '--priority', metavar='PRI', help='show entries at priority PRI and lower', choices=['emerg', 'alert', 'crit', 'err', 'warning', 'notice', 'info', 'debug']) parser.add_argument('--conf', metavar='FILE', help='use FILE as config file') parser.add_argument('--debug', action='store_true', default=False, help='enable debugging') parser.add_argument('--dry-run', action='store_true', default=False, help='do not update cursor bookmark file') helptxt = ('output format for journal entries, ' 'comma-separated list from {0}'.format(list_formatters())) parser.add_argument('-o', '--output', metavar='FORMAT', help=helptxt) parser.add_argument('--help-output', action='store_true', default=False, help='display information about output formats') cmds = parser.add_subparsers(dest='cmd') cmds.add_parser('debrief', help='create exclusions config') cmds.add_parser('reset', help='reset cursor bookmark and exit') cmds.add_parser('stats', help='show statistics') return parser.parse_args(args)
def validate_output(self): if 'output' not in self: return formatters = list_formatters() output = self['output'] if isinstance(output, list): outputs = output else: outputs = [output] for output in outputs: if output not in formatters: yield SemanticError('invalid output format, must be in %s' % formatters, output, {'output': self['output']})
def show_output_help(self): """ Respond to --help-output """ print("Available output formats:") for output in list_formatters(): print("\n{0}:".format(output)) formatter = get_formatter(output) docstring = [line.strip() for line in formatter.__doc__.splitlines()] while docstring and not docstring[0]: del docstring[0] while docstring and not docstring[-1]: del docstring[-1] print('\n'.join([' ' + line for line in docstring])) print("\nMultiple output formats can be used at the same time.") print("The default is '{0}'".format(self.default_output_format))