diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-03-20 10:41:24 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-03-20 10:41:24 -0700 |
commit | de88819ff3240d31260a449d226037d1228a8d07 (patch) | |
tree | 6e37d1684d5a077ea22ef79fc0ecc019e9a702ac | |
parent | 7ff280c89551def11cf9fa7e5a22c580553e0e6e (diff) | |
download | portage-de88819ff3240d31260a449d226037d1228a8d07.tar.gz portage-de88819ff3240d31260a449d226037d1228a8d07.tar.bz2 portage-de88819ff3240d31260a449d226037d1228a8d07.zip |
portageq owners: list orphans via stderr
-rwxr-xr-x | bin/portageq | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/bin/portageq b/bin/portageq index 2f254ca81..069ece238 100755 --- a/bin/portageq +++ b/bin/portageq @@ -255,6 +255,8 @@ def owners(argv): pass files = [] + orphan_abs_paths = set() + orphan_basenames = set() for f in argv[1:]: f = portage.normalize_path(f) is_basename = os.sep not in f @@ -271,8 +273,10 @@ def owners(argv): return 2 if is_basename: files.append(f) + orphan_basenames.add(f) else: files.append(f[len(root)-1:]) + orphan_abs_paths.add(f) owners = vardb._owners.get_owners(files) @@ -281,16 +285,28 @@ def owners(argv): cpv = pkg.mycpv msg.append("%s\n" % cpv) for f in sorted(owned_files): - msg.append("\t%s\n" % \ - os.path.join(root, f.lstrip(os.path.sep))) + f_abs = os.path.join(root, f.lstrip(os.path.sep)) + msg.append("\t%s\n" % (f_abs,)) + orphan_abs_paths.discard(f_abs) + if orphan_basenames: + orphan_basenames.discard(os.path.basename(f_abs)) writemsg_stdout(''.join(msg), noiselevel=-1) + if orphan_abs_paths or orphan_basenames: + orphans = [] + orphans.extend(orphan_abs_paths) + orphans.extend(orphan_basenames) + orphans.sort() + msg = [] + msg.append("None of the installed packages claim these files:\n") + for f in orphans: + msg.append("\t%s\n" % (f,)) + sys.stderr.write("".join(msg)) + sys.stderr.flush() + if owners: return 0 - - sys.stderr.write("None of the installed packages claim the file(s).\n") - sys.stderr.flush() return 1 owners.uses_root = True |