From b01194ef8db247aadb9a8a6d0516b839982e1496 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Mon, 13 Dec 2010 03:47:37 -0800 Subject: [PATCH] ubuntutools.builder: Add an "update" method for updating chroots --- ubuntutools/builder.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/ubuntutools/builder.py b/ubuntutools/builder.py index e15a534..e0687dc 100644 --- a/ubuntutools/builder.py +++ b/ubuntutools/builder.py @@ -50,6 +50,11 @@ class Pbuilder(Builder): Logger.command(cmd) return subprocess.call(cmd) + def update(self, dist): + cmd = ["sudo", "-E", "DIST=" + dist, "pbuilder", "--update"] + Logger.command(cmd) + return subprocess.call(cmd) + class Sbuild(Builder): def __init__(self): @@ -67,6 +72,38 @@ class Sbuild(Builder): os.chdir(workdir) return result + def update(self, dist): + cmd = ["schroot", "--list"] + Logger.command(cmd) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + chroots, _ = p.communicate() + chroots = chroots.strip().split() + if p.returncode != 0: + return p.returncode + + params = {"dist": dist, + "arch": self.architecture} + for chroot in ("%(dist)s-%(arch)s-sbuild-source", + "%(dist)s-sbuild-source", + "%(dist)s-%(arch)s-source", + "%(dist)s-source"): + chroot = chroot % params + if chroot in chroots: + break + else: + return 1 + + chroot_cmd = ["sudo", "schroot", "-c", chroot, "-u", "root", "--"] + commands = [["apt-get", "-q", "update"], + ["apt-get", "-q", "-y", "dist-upgrade"], + ["apt-get", "-q", "-y", "autoremove"], + ["apt-get", "-q", "clean"]] + for cmd in commands: + Logger.command(chroot_cmd + cmd) + ret = subprocess.call(chroot_cmd + cmd) + if ret != 0: + return ret + def getBuilder(builder=None): if not builder: