Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-11-15 14:37:29 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-11-15 14:37:29 (GMT)
commit5e2ceca257c9b13a6ee80044a51527cea796e01a (patch)
tree08dbf0d1a18339498c489fc57742b3f1a3356daa /devbot
parentb97e30a31ab62cbbecec46326f86b77b23b9f409 (diff)
Various fixes to the ubuntu package manager
Diffstat (limited to 'devbot')
-rw-r--r--devbot/distro.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/devbot/distro.py b/devbot/distro.py
index 53a3c6f..0ac68ac 100644
--- a/devbot/distro.py
+++ b/devbot/distro.py
@@ -90,7 +90,7 @@ class UbuntuPackageManager:
command.run_with_sudo(args, test=self._test)
def remove_packages(self, packages):
- args = ["rpm", "-e"]
+ args = ["dpkg", "-e"]
args.extend(packages)
command.run_with_sudo(args, test=True)
@@ -100,33 +100,39 @@ class UbuntuPackageManager:
command.run_with_sudo(["apt-get", "upgrade"], test=self._test)
def find_all(self):
- return [package for package in self._cache]
+ return [package.name for package in self._cache
+ if package.installed is not None]
- def find_deps(package, result):
+ def _find_deps(self, package, result):
if self._cache.is_virtual_package(package):
for providing in self._cache.get_providing_packages(package):
- find_deps(providing.name, result)
+ self._find_deps(providing.name, result)
return
if package not in self._cache:
- print package
+ print "Package %s not in cache" % package
return
- candidate = self._cache[package].candidate
- for dependency in candidate.dependencies:
+ installed = self._cache[package].installed
+ if installed is None:
+ print "Package %s not installed" % package
+ return
+
+ for dependency in installed.dependencies:
for base_dependency in dependency.or_dependencies:
dependency_name = base_dependency.name
if dependency_name not in result:
result.append(dependency_name)
- find_deps(dependency_name, result)
+ self._find_deps(dependency_name, result)
def find_with_deps(self, package_names):
result = []
for package in package_names:
- find_deps(package, result)
- if package not in result:
- result.append(package)
+ if package is not None:
+ self._find_deps(package, result)
+ if package not in result:
+ result.append(package)
return result