Source code for synapse.lib.cmd

import argparse

import synapse.exc as s_exc
import synapse.lib.output as s_output

[docs]class Parser(argparse.ArgumentParser): def __init__(self, prog=None, outp=s_output.stdout, **kwargs): self.outp = outp self.exited = False argparse.ArgumentParser.__init__(self, prog=prog, formatter_class=argparse.RawDescriptionHelpFormatter, **kwargs)
[docs] def exit(self, status=0, message=None): ''' Argparse expects exit() to be a terminal function and not return. As such, this function must raise an exception instead. ''' self.exited = True self.status = status if message is not None: self.outp.printf(message) raise s_exc.ParserExit(mesg=message, status=status)
def _print_message(self, text, fd=None): ''' Note: this overrides an existing method in ArgumentParser ''' self.outp.printf(text)