Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot/distro.py
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-11-15 10:49:49 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-11-15 10:49:49 (GMT)
commit11774e593875effb32c1db9d5fcc39b25a297d3f (patch)
treeee66d2245d79190ff99d9092b8169ece9dcd636c /devbot/distro.py
parentf0ee20deb5511ad2fe480c3d485b203c706e68f6 (diff)
Rework deps resolving
Speed up and handle empty results without crashing
Diffstat (limited to 'devbot/distro.py')
-rw-r--r--devbot/distro.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/devbot/distro.py b/devbot/distro.py
index 3c2872b..ed2128f 100644
--- a/devbot/distro.py
+++ b/devbot/distro.py
@@ -61,15 +61,18 @@ class FedoraPackageManager:
print "Package %s not installed" % package
return
- for capability in capabilities.strip().split(" "):
- if capability.startswith("rpmlib"):
- continue
- query_format = "--queryformat=[%{NAME} ]"
- deps_packages = subprocess.check_output(["rpm", "-q",
- query_format,
- "--whatprovides",
- capability]).strip()
-
+ filtered = [cap for cap in capabilities.split(" ")
+ if not cap.startswith("rpmlib")]
+
+ if capabilities and filtered:
+ print package, filtered
+
+ args = ["rpm", "-q",
+ "--queryformat=[%{NAME} ]",
+ "--whatprovides"]
+ args.extend(filtered)
+
+ deps_packages = subprocess.check_output(args).strip()
for dep_package in deps_packages.split(" "):
if dep_package not in result:
result.append(dep_package)