From 7a6b6891ad5f904c3f595ff9a7485e6ad47ed3fd Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 22 Jun 2007 01:36:59 +0000 Subject: Print filename when displaying package.mask comments (trunk r5974) svn path=/main/branches/2.1.2/; revision=6928 --- bin/emerge | 5 +++-- pym/portage.py | 48 ++++++++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/bin/emerge b/bin/emerge index 12d7a292a..3ba0e9e51 100755 --- a/bin/emerge +++ b/bin/emerge @@ -1668,9 +1668,10 @@ class depgraph: mreasons = portage.getmaskingstatus(p, settings=pkgsettings, portdb=portdb) print "- "+p+" (masked by: "+", ".join(mreasons)+")" - comment = portage.getmaskingreason(p, - settings=pkgsettings, portdb=portdb) + comment, filename = portage.getmaskingreason(p, + settings=pkgsettings, portdb=portdb, return_location=True) if comment and comment != oldcomment: + print filename+":" print comment oldcomment = comment print diff --git a/pym/portage.py b/pym/portage.py index fb20fd0ba..ff016c021 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -4636,7 +4636,7 @@ def cpv_expand(mycpv, mydb=None, use_cache=1, settings=None): else: return mykey -def getmaskingreason(mycpv, settings=None, portdb=None): +def getmaskingreason(mycpv, settings=None, portdb=None, return_location=False): from portage_util import grablines if settings is None: settings = globals()["settings"] @@ -4659,11 +4659,7 @@ def getmaskingreason(mycpv, settings=None, portdb=None): locations.append(os.path.join(settings["PORTAGE_CONFIGROOT"], USER_CONFIG_PATH.lstrip(os.path.sep))) locations.reverse() - pmasklists = [grablines(os.path.join(x, "package.mask"), recursive=1) for x in locations] - pmasklines = [] - while pmasklists: # stack_lists doesn't preserve order so it can't be used - pmasklines.extend(pmasklists.pop(0)) - del pmasklists + pmasklists = [(x, grablines(os.path.join(x, "package.mask"), recursive=1)) for x in locations] if settings.pmaskdict.has_key(mycp): for x in settings.pmaskdict[mycp]: @@ -4671,23 +4667,31 @@ def getmaskingreason(mycpv, settings=None, portdb=None): comment = "" l = "\n" comment_valid = -1 - for i in xrange(len(pmasklines)): - l = pmasklines[i].strip() - if l == "": - comment = "" - comment_valid = -1 - elif l[0] == "#": - comment += (l+"\n") - comment_valid = i + 1 - elif l == x: - if comment_valid != i: + for pmask in pmasklists: + pmask_filename = os.path.join(pmask[0], "package.mask") + for i in xrange(len(pmask[1])): + l = pmask[1][i].strip() + if l == "": comment = "" - return comment - elif comment_valid != -1: - # Apparently this comment applies to muliple masks, so - # it remains valid until a blank line is encountered. - comment_valid += 1 - return None + comment_valid = -1 + elif l[0] == "#": + comment += (l+"\n") + comment_valid = i + 1 + elif l == x: + if comment_valid != i: + comment = "" + if return_location: + return (comment, pmask_filename) + else: + return comment + elif comment_valid != -1: + # Apparently this comment applies to muliple masks, so + # it remains valid until a blank line is encountered. + comment_valid += 1 + if return_location: + return (None, None) + else: + return None def getmaskingstatus(mycpv, settings=None, portdb=None): if settings is None: -- cgit v1.2.3-1-g7c22