diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-11-15 10:49:49 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-11-15 10:49:49 (GMT) |
commit | 11774e593875effb32c1db9d5fcc39b25a297d3f (patch) | |
tree | ee66d2245d79190ff99d9092b8169ece9dcd636c /devbot | |
parent | f0ee20deb5511ad2fe480c3d485b203c706e68f6 (diff) |
Rework deps resolving
Speed up and handle empty results without crashing
Diffstat (limited to 'devbot')
-rw-r--r-- | devbot/distro.py | 21 |
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) |