diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-11-29 00:20:08 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-11-29 00:20:08 (GMT) |
commit | 0e848594e4d46f517ab3a7a526fe52075e332c62 (patch) | |
tree | ba72f8fb5feb6a5adbe109f37ba3867929f3f203 /devbot | |
parent | 225fec76eac61dcd0bbbd090fadad56f7917fc68 (diff) |
Initial support for debian wheezy
Diffstat (limited to 'devbot')
-rw-r--r-- | devbot/plugins/debian.py | 31 | ||||
-rw-r--r-- | devbot/plugins/ubuntu.py | 80 |
2 files changed, 15 insertions, 96 deletions
diff --git a/devbot/plugins/debian.py b/devbot/plugins/debian.py index 4612794..402222f 100644 --- a/devbot/plugins/debian.py +++ b/devbot/plugins/debian.py @@ -80,6 +80,7 @@ class PackageManager(interfaces.PackageManager): return result + distro.register_package_manager("debian", PackageManager) class DistroInfo(interfaces.DistroInfo): @@ -88,29 +89,23 @@ class DistroInfo(interfaces.DistroInfo): self.name = "debian" self.version = "unknown" - self.system_version = "3.6" + self.system_version = "3.4" self.valid = True self.supported = (arch in ["i686", "x86_64"]) self.use_lib64 = False - - if self._get_distributor() != "debian": - self.valid = False - - self.version = self._get_release() - - if self.version != "wheezy": - self.supported = False - def _get_distributor(self): try: - return subprocess.check_output(["lsb_release", "-si"]).strip() - except OSError: - None + with open("/etc/debian_version") as f: + debian_version = f.read() + except IOError: + debian_version = None - def _get_release(self): - try: - return subprocess.check_output(["lsb_release", "-sc"]).strip() - except OSError: - return None + if debian_version is None: + self.valid = False + + if debian_version.startswith("wheezy"): + self.version = "wheezy" + else: + self.supported = False distro.register_distro_info(DistroInfo) diff --git a/devbot/plugins/ubuntu.py b/devbot/plugins/ubuntu.py index 6b80b4e..4db0dd1 100644 --- a/devbot/plugins/ubuntu.py +++ b/devbot/plugins/ubuntu.py @@ -1,86 +1,10 @@ -import os import subprocess -from devbot import command from devbot import distro from devbot.plugins import interfaces +from devbot.plugins import debian -class PackageManager(interfaces.PackageManager): - def __init__(self, test=False, interactive=True): - import apt - - self._test = test - self._interactive = interactive - - self._cache = apt.cache.Cache() - - def install_packages(self, packages): - args = ["apt-get"] - - if not self._interactive: - args.append("-y") - - args.append("install") - args.extend(packages) - - command.run_with_sudo(args, test=self._test) - - def remove_packages(self, packages): - args = ["dpkg", "-P"] - args.extend(packages) - - command.run_with_sudo(args, test=self._test) - - def update(self): - command.run_with_sudo(["apt-get", "update"], test=self._test) - - args = ["apt-get"] - - if not self._interactive: - args.append("-y") - - args.append("upgrade") - - command.run_with_sudo(args, test=self._test) - - def find_all(self): - return [package.name for package in self._cache - if package.installed is not None] - - def _find_deps(self, package, result): - if self._cache.is_virtual_package(package): - for providing in self._cache.get_providing_packages(package): - self._find_deps(providing.name, result) - return - - if package not in self._cache: - print "Package %s not in cache" % package - return - - 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) - self._find_deps(dependency_name, result) - - def find_with_deps(self, package_names): - result = [] - - for package in package_names: - if package is not None: - self._find_deps(package, result) - if package not in result: - result.append(package) - - return result - -distro.register_package_manager("ubuntu", PackageManager) +distro.register_package_manager("ubuntu", debian.PackageManager) class DistroInfo(interfaces.DistroInfo): def __init__(self): |