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-29 00:20:08 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-11-29 00:20:08 (GMT)
commit0e848594e4d46f517ab3a7a526fe52075e332c62 (patch)
treeba72f8fb5feb6a5adbe109f37ba3867929f3f203 /devbot
parent225fec76eac61dcd0bbbd090fadad56f7917fc68 (diff)
Initial support for debian wheezy
Diffstat (limited to 'devbot')
-rw-r--r--devbot/plugins/debian.py31
-rw-r--r--devbot/plugins/ubuntu.py80
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):