diff options
Diffstat (limited to 'pym/gentoolkit/base.py')
-rw-r--r-- | pym/gentoolkit/base.py | 207 |
1 files changed, 106 insertions, 101 deletions
diff --git a/pym/gentoolkit/base.py b/pym/gentoolkit/base.py index 372ed74..8dfa2db 100644 --- a/pym/gentoolkit/base.py +++ b/pym/gentoolkit/base.py @@ -6,7 +6,7 @@ """Gentoolkit Base Module class to hold common module operation functions """ -__docformat__ = 'epytext' +__docformat__ = "epytext" import os @@ -18,127 +18,132 @@ from gentoolkit.formatters import format_options GLOBAL_OPTIONS = ( - (" -h, --help", "display this help message"), - (" -q, --quiet", "minimal output"), - (" -C, --no-color", "turn off colors"), - (" -N, --no-pipe", "turn off pipe detection"), - (" -V, --version", "display version info") + (" -h, --help", "display this help message"), + (" -q, --quiet", "minimal output"), + (" -C, --no-color", "turn off colors"), + (" -N, --no-pipe", "turn off pipe detection"), + (" -V, --version", "display version info"), ) def initialize_configuration(): - """Setup the standard equery config""" - - # Get terminal size - term_width = pp.output.get_term_size()[1] - if term_width < 1: - # get_term_size() failed. Set a sane default width: - term_width = 80 - # Terminal size, minus a 1-char margin for text wrapping - gentoolkit.CONFIG['termWidth'] = term_width - 1 - # Guess color output - if (gentoolkit.CONFIG['color'] == -1 and (not sys.stdout.isatty() or - os.getenv("NOCOLOR") in ("yes", "true")) or gentoolkit.CONFIG['color'] == 0): - pp.output.nocolor() - gentoolkit.CONFIG['verbose'] = not gentoolkit.CONFIG['piping'] + """Setup the standard equery config""" + + # Get terminal size + term_width = pp.output.get_term_size()[1] + if term_width < 1: + # get_term_size() failed. Set a sane default width: + term_width = 80 + # Terminal size, minus a 1-char margin for text wrapping + gentoolkit.CONFIG["termWidth"] = term_width - 1 + # Guess color output + if ( + gentoolkit.CONFIG["color"] == -1 + and (not sys.stdout.isatty() or os.getenv("NOCOLOR") in ("yes", "true")) + or gentoolkit.CONFIG["color"] == 0 + ): + pp.output.nocolor() + gentoolkit.CONFIG["verbose"] = not gentoolkit.CONFIG["piping"] def split_arguments(args): - """Separate module name from module arguments""" + """Separate module name from module arguments""" - return args.pop(0), args + return args.pop(0), args def main_usage(module_info): - """Return the main usage message for analyse""" - return "%(usage)s %(product)s [%(g_opts)s] %(mod_name)s [%(mod_opts)s]" % { - 'usage': pp.emph("Usage:"), - 'product': pp.productname(module_info["__productname__"]), - 'g_opts': pp.globaloption("global-options"), - 'mod_name': pp.command("module-name"), - 'mod_opts': pp.localoption("module-options") - } + """Return the main usage message for analyse""" + return "%(usage)s %(product)s [%(g_opts)s] %(mod_name)s [%(mod_opts)s]" % { + "usage": pp.emph("Usage:"), + "product": pp.productname(module_info["__productname__"]), + "g_opts": pp.globaloption("global-options"), + "mod_name": pp.command("module-name"), + "mod_opts": pp.localoption("module-options"), + } def print_version(module_info): - """Print the version of this tool to the console.""" + """Print the version of this tool to the console.""" - print("%(product)s (%(version)s) - %(docstring)s" % { - "product": pp.productname(module_info["__productname__"]), - "version": module_info["__version__"], - "docstring": module_info["__doc__"] - }) + print( + "%(product)s (%(version)s) - %(docstring)s" + % { + "product": pp.productname(module_info["__productname__"]), + "version": module_info["__version__"], + "docstring": module_info["__doc__"], + } + ) def print_help(module_info, formatted_options=None, with_description=True): - """Print description, usage and a detailed help message. - - @param with_description (bool): Option to print module's __doc__ or not - """ - - if with_description: - print() - print(module_info["__doc__"]) - print() - print(main_usage(module_info)) - print() - print(pp.globaloption("global options")) - print(format_options(GLOBAL_OPTIONS)) - print() - if formatted_options: - print(pp.command("modules") + " (" + pp.command("short name") + ")") - print(format_options(formatted_options)) - else: - print("Error: calling function did not supply formatted options") - print() + """Print description, usage and a detailed help message. + + @param with_description (bool): Option to print module's __doc__ or not + """ + + if with_description: + print() + print(module_info["__doc__"]) + print() + print(main_usage(module_info)) + print() + print(pp.globaloption("global options")) + print(format_options(GLOBAL_OPTIONS)) + print() + if formatted_options: + print(pp.command("modules") + " (" + pp.command("short name") + ")") + print(format_options(formatted_options)) + else: + print("Error: calling function did not supply formatted options") + print() def parse_global_options(global_opts, args, module_info, formatted_options): - """Parse global input args and return True if we should display help for - the called module, else False (or display help and exit from here). - """ - - need_help = False - do_help = False - opts = (opt[0] for opt in global_opts) - for opt in opts: - if opt in ('-h', '--help'): - do_help = True - if args: - need_help = True - else: - do_help = True - elif opt in ('-q','--quiet'): - gentoolkit.CONFIG['quiet'] = True - elif opt in ('-C', '--no-color', '--nocolor'): - gentoolkit.CONFIG['color'] = 0 - pp.output.nocolor() - elif opt in ('-N', '--no-pipe'): - gentoolkit.CONFIG['piping'] = False - elif opt in ('-V', '--version'): - print_version(module_info) - sys.exit(0) - elif opt in ('--debug'): - gentoolkit.CONFIG['debug'] = True - if do_help: - print_help( module_info, formatted_options) - sys.exit(0) - return need_help + """Parse global input args and return True if we should display help for + the called module, else False (or display help and exit from here). + """ + + need_help = False + do_help = False + opts = (opt[0] for opt in global_opts) + for opt in opts: + if opt in ("-h", "--help"): + do_help = True + if args: + need_help = True + else: + do_help = True + elif opt in ("-q", "--quiet"): + gentoolkit.CONFIG["quiet"] = True + elif opt in ("-C", "--no-color", "--nocolor"): + gentoolkit.CONFIG["color"] = 0 + pp.output.nocolor() + elif opt in ("-N", "--no-pipe"): + gentoolkit.CONFIG["piping"] = False + elif opt in ("-V", "--version"): + print_version(module_info) + sys.exit(0) + elif opt in ("--debug"): + gentoolkit.CONFIG["debug"] = True + if do_help: + print_help(module_info, formatted_options) + sys.exit(0) + return need_help def mod_usage(mod_name="module", arg="pkgspec", optional=False): - """Provide a consistant usage message to the calling module. - - @type arg: string - @param arg: what kind of argument the module takes (pkgspec, filename, etc) - @type optional: bool - @param optional: is the argument optional? - """ - - return "%(usage)s: %(mod_name)s [%(opts)s] %(arg)s" % { - 'usage': pp.emph("Usage"), - 'mod_name': pp.command(mod_name), - 'opts': pp.localoption("options"), - 'arg': ("[%s]" % pp.emph(arg)) if optional else pp.emph(arg) - } - + """Provide a consistant usage message to the calling module. + + @type arg: string + @param arg: what kind of argument the module takes (pkgspec, filename, etc) + @type optional: bool + @param optional: is the argument optional? + """ + + return "%(usage)s: %(mod_name)s [%(opts)s] %(arg)s" % { + "usage": pp.emph("Usage"), + "mod_name": pp.command(mod_name), + "opts": pp.localoption("options"), + "arg": ("[%s]" % pp.emph(arg)) if optional else pp.emph(arg), + } |