mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-12 23:51:08 +00:00
ubuntutools.builder: Add an "update" method for updating chroots
This commit is contained in:
parent
ee157d1cd9
commit
b01194ef8d
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user