summaryrefslogtreecommitdiff
path: root/trunk
diff options
context:
space:
mode:
authorfuzzyray <fuzzyray@gentoo.org>2006-12-31 07:21:54 +0000
committerfuzzyray <fuzzyray@gentoo.org>2006-12-31 07:21:54 +0000
commitb3ae597d45aee98e2f549fc15d3d2047893daab3 (patch)
tree7bdf8e68dae4e996115f30d2d1fb5b9be528092a /trunk
parenteed3c20f56bf45003fedf42d4294107aaa92a38d (diff)
downloadgentoolkit-b3ae597d45aee98e2f549fc15d3d2047893daab3.tar.gz
Reworked equery depends command to be more accurate
svn path=/; revision=329
Diffstat (limited to 'trunk')
-rw-r--r--trunk/ChangeLog3
-rwxr-xr-xtrunk/src/equery/equery69
2 files changed, 41 insertions, 31 deletions
diff --git a/trunk/ChangeLog b/trunk/ChangeLog
index 26e1138..cd46b05 100644
--- a/trunk/ChangeLog
+++ b/trunk/ChangeLog
@@ -1,3 +1,6 @@
+2006-12-31 Paul Varner <fuzzyray@gentoo.org>
+ * equery: Reworked equery depends command to be more accurate.
+
2006-12-13 Paul Varner <fuzzyray@gentoo.org>
* revdep-rebuild: Fix handling of /etc/portage/package.mask (Bug
#158025) Thanks to Wolfram Schlich for the patch.
diff --git a/trunk/src/equery/equery b/trunk/src/equery/equery
index 50f56f2..0275649 100755
--- a/trunk/src/equery/equery
+++ b/trunk/src/equery/equery
@@ -1107,6 +1107,9 @@ class CmdListDepends(Command):
print_info(3, "[ Searching for packages depending on " + pp.pkgquery(query) + "... ]")
isdepend = gentoolkit.split_package_name(query)
+ isdepends = map((lambda x: x.get_cpv()), gentoolkit.find_packages(query))
+ if not isdepends:
+ print_warn("Warning: No packages found matching %s" % query)
if opts["onlyInstalled"]:
packages = gentoolkit.find_all_installed_packages()
@@ -1149,50 +1152,54 @@ class CmdListDepends(Command):
for dependency in deps:
# TODO determine if dependency is enabled by USE flag
# Find all packages matching the dependency
- Config["verbosityLevel"] = 4
- for x in gentoolkit.find_packages(dependency[0]+dependency[2]):
- cpvs=gentoolkit.split_package_name(x.get_cpv())
- cat_match=0
- name_match=0
- ver_match=0
- # Match Category
- if not isdepend[0] or \
- cpvs[0] == isdepend[0]:
+ for x in map((lambda x: x.get_cpv()), gentoolkit.find_packages(dependency[0]+dependency[2])):
+ cpvs=gentoolkit.split_package_name(x)
+ if x in isdepends:
cat_match=1
- # Match Name
- if cpvs[1] == isdepend[1]:
name_match=1
- # Match Version
- if not isdepend[2] or \
- ( cpvs[2] == isdepend[2] and \
- (isdepend[3] or \
- isdepend[3] == "r0" or \
- cpvs[3] == isdepend[3])):
- ver_match=1
+ ver_match=1
+ else:
+ cat_match=0
+ name_match=0
+ ver_match=0
+ # Match Category
+ if not isdepend[0] or cpvs[0] == isdepend[0]:
+ cat_match=1
+ # Match Name
+ if cpvs[1] == isdepend[1]:
+ name_match=1
+ # Match Version
+ if not isdepend[2] or ( cpvs[2] == isdepend[2] and (isdepend[3] \
+ or isdepend[3] == "r0" or cpvs[3] == isdepend[3])):
+ ver_match=1
+
if cat_match and ver_match and name_match:
if not isdep:
if dependency[1]:
- print pkg.get_cpv(),
- if Config["verbosityLevel"] >= 4:
- print "(" +string.join(dependency[1],"&")+ "? " + \
- dependency[0]+dependency[2] + ")"
+ if not Config["piping"] and Config["verbosityLevel"] >= 3:
+ print pp.cpv(pkg.get_cpv()),
+ print "(" + \
+ pp.useflag(string.join(dependency[1],"&") + "? ") + \
+ pp.pkgquery(dependency[0]+dependency[2]) + ")"
else:
- print
+ print pkg.get_cpv()
else:
- print pkg.get_cpv(),
- if Config["verbosityLevel"] >= 4:
- print "(" + dependency[0]+dependency[2] + ")"
+ if not Config["piping"] and Config["verbosityLevel"] >= 3:
+ print pp.cpv(pkg.get_cpv()),
+ print "(" + pp.pkgquery(dependency[0]+dependency[2]) + ")"
else:
- print
+ print pkg.get_cpv()
isdep = 1
- elif Config["verbosityLevel"] >= 4:
+ elif not Config["piping"] and Config["verbosityLevel"] >= 3:
if dependency[1]:
print " "*len(pkg.get_cpv()) + \
- " (" + string.join(dependency[1],"&")+ " ? " + \
- dependency[0]+dependency[2] + ")"
+ " (" + pp.useflag(string.join(dependency[1],"&")+ "? ") + \
+ pp.pkgquery(dependency[0]+dependency[2]) + ")"
else:
print " "*len(pkg.get_cpv()) + " (" + \
- dependency[0]+dependency[2] + ")"
+ pp.pkgquery(dependency[0]+dependency[2]) + ")"
+
+ break
if isdep and not opts["onlyDirect"] :
subdeps(pkg.get_cpv(), " ")