diff options
Diffstat (limited to 'pym/gentoolkit/equery/belongs.py')
-rw-r--r-- | pym/gentoolkit/equery/belongs.py | 218 |
1 files changed, 109 insertions, 109 deletions
diff --git a/pym/gentoolkit/equery/belongs.py b/pym/gentoolkit/equery/belongs.py index 1c9ab13..d62ff9a 100644 --- a/pym/gentoolkit/equery/belongs.py +++ b/pym/gentoolkit/equery/belongs.py @@ -8,7 +8,7 @@ Note: Normally, only one package will own a file. If multiple packages own the same file, it usually constitutes a problem, and should be reported. """ -__docformat__ = 'epytext' +__docformat__ = "epytext" # ======= # Imports @@ -18,137 +18,137 @@ import sys from getopt import gnu_getopt, GetoptError import gentoolkit.pprinter as pp -from gentoolkit.equery import (format_filetype, format_options, mod_usage, - CONFIG) +from gentoolkit.equery import format_filetype, format_options, mod_usage, CONFIG from gentoolkit.helpers import FileOwner # ======= # Globals # ======= -QUERY_OPTS = { - "full_regex": False, - "early_out": False, - "name_only": False -} +QUERY_OPTS = {"full_regex": False, "early_out": False, "name_only": False} # ======= # Classes # ======= + class BelongsPrinter: - """Outputs a formatted list of packages that claim to own a files.""" - - def __init__(self, verbose=True, name_only=False): - if verbose: - self.print_fn = self.print_verbose - else: - self.print_fn = self.print_quiet - - self.name_only = name_only - - def __call__(self, pkg, cfile): - self.print_fn(pkg, cfile) - - def print_quiet(self, pkg, cfile): - "Format for minimal output." - if self.name_only: - name = pkg.cp - else: - name = str(pkg.cpv) - pp.uprint(name) - - def print_verbose(self, pkg, cfile): - "Format for full output." - file_str = pp.path(format_filetype(cfile, pkg.parsed_contents()[cfile])) - if self.name_only: - name = pkg.cp - else: - name = str(pkg.cpv) - pp.uprint(pp.cpv(name), "(" + file_str + ")") + """Outputs a formatted list of packages that claim to own a files.""" + + def __init__(self, verbose=True, name_only=False): + if verbose: + self.print_fn = self.print_verbose + else: + self.print_fn = self.print_quiet + + self.name_only = name_only + + def __call__(self, pkg, cfile): + self.print_fn(pkg, cfile) + + def print_quiet(self, pkg, cfile): + "Format for minimal output." + if self.name_only: + name = pkg.cp + else: + name = str(pkg.cpv) + pp.uprint(name) + + def print_verbose(self, pkg, cfile): + "Format for full output." + file_str = pp.path(format_filetype(cfile, pkg.parsed_contents()[cfile])) + if self.name_only: + name = pkg.cp + else: + name = str(pkg.cpv) + pp.uprint(pp.cpv(name), "(" + file_str + ")") + # ========= # Functions # ========= + def parse_module_options(module_opts): - """Parse module options and update QUERY_OPTS""" - - opts = (x[0] for x in module_opts) - for opt in opts: - if opt in ('-h','--help'): - print_help() - sys.exit(0) - elif opt in ('-e', '--early-out', '--earlyout'): - if opt == '--earlyout': - sys.stderr.write(pp.warn("Use of --earlyout is deprecated.")) - sys.stderr.write(pp.warn("Please use --early-out.")) - print() - QUERY_OPTS['early_out'] = True - elif opt in ('-f', '--full-regex'): - QUERY_OPTS['full_regex'] = True - elif opt in ('-n', '--name-only'): - QUERY_OPTS['name_only'] = True + """Parse module options and update QUERY_OPTS""" + + opts = (x[0] for x in module_opts) + for opt in opts: + if opt in ("-h", "--help"): + print_help() + sys.exit(0) + elif opt in ("-e", "--early-out", "--earlyout"): + if opt == "--earlyout": + sys.stderr.write(pp.warn("Use of --earlyout is deprecated.")) + sys.stderr.write(pp.warn("Please use --early-out.")) + print() + QUERY_OPTS["early_out"] = True + elif opt in ("-f", "--full-regex"): + QUERY_OPTS["full_regex"] = True + elif opt in ("-n", "--name-only"): + QUERY_OPTS["name_only"] = True def print_help(with_description=True): - """Print description, usage and a detailed help message. - - @type with_description: bool - @param with_description: if true, print module's __doc__ string - """ - - if with_description: - print(__doc__.strip()) - print() - print(mod_usage(mod_name="belongs", arg="filename")) - print() - print(pp.command("options")) - print(format_options(( - (" -h, --help", "display this help message"), - (" -f, --full-regex", "supplied query is a regex" ), - (" -e, --early-out", "stop when first match is found"), - (" -n, --name-only", "don't print the version") - ))) + """Print description, usage and a detailed help message. + + @type with_description: bool + @param with_description: if true, print module's __doc__ string + """ + + if with_description: + print(__doc__.strip()) + print() + print(mod_usage(mod_name="belongs", arg="filename")) + print() + print(pp.command("options")) + print( + format_options( + ( + (" -h, --help", "display this help message"), + (" -f, --full-regex", "supplied query is a regex"), + (" -e, --early-out", "stop when first match is found"), + (" -n, --name-only", "don't print the version"), + ) + ) + ) def main(input_args): - """Parse input and run the program""" - - short_opts = "h:fen" - long_opts = ('help', 'full-regex', 'early-out', 'earlyout', - 'name-only') - - try: - module_opts, queries = gnu_getopt(input_args, short_opts, long_opts) - except GetoptError as err: - sys.stderr.write(pp.error("Module %s" % err)) - print() - print_help(with_description=False) - sys.exit(2) - - parse_module_options(module_opts) - - if not queries: - print_help() - sys.exit(2) - - if CONFIG['verbose']: - pp.uprint(" * Searching for %s ... " % ( - pp.regexpquery(",".join(queries))) - ) - - printer_fn = BelongsPrinter( - verbose=CONFIG['verbose'], name_only=QUERY_OPTS['name_only'] - ) - - find_owner = FileOwner( - is_regex=QUERY_OPTS['full_regex'], - early_out=QUERY_OPTS['early_out'], - printer_fn=printer_fn - ) - - if not find_owner(queries): - sys.exit(1) + """Parse input and run the program""" + + short_opts = "h:fen" + long_opts = ("help", "full-regex", "early-out", "earlyout", "name-only") + + try: + module_opts, queries = gnu_getopt(input_args, short_opts, long_opts) + except GetoptError as err: + sys.stderr.write(pp.error("Module %s" % err)) + print() + print_help(with_description=False) + sys.exit(2) + + parse_module_options(module_opts) + + if not queries: + print_help() + sys.exit(2) + + if CONFIG["verbose"]: + pp.uprint(" * Searching for %s ... " % (pp.regexpquery(",".join(queries)))) + + printer_fn = BelongsPrinter( + verbose=CONFIG["verbose"], name_only=QUERY_OPTS["name_only"] + ) + + find_owner = FileOwner( + is_regex=QUERY_OPTS["full_regex"], + early_out=QUERY_OPTS["early_out"], + printer_fn=printer_fn, + ) + + if not find_owner(queries): + sys.exit(1) + # vim: set ts=4 sw=4 tw=79: |