mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-13 08:01:09 +00:00
ubuntutools.builder: Detect missing builder and fail early.
This commit is contained in:
commit
5762512710
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
||||
ubuntu-dev-tools (0.128) UNRELEASED; urgency=low
|
||||
|
||||
* ubuntutools.builder: Detect missing builder and fail early.
|
||||
|
||||
-- Stefano Rivera <stefanor@debian.org> Mon, 25 Jul 2011 19:36:41 +0200
|
||||
|
||||
ubuntu-dev-tools (0.127) unstable; urgency=low
|
||||
|
||||
* Move debian-distro-info, distro-info, and ubuntu-distro-info from
|
||||
|
@ -41,6 +41,12 @@ class Builder(object):
|
||||
(os.path.basename(dsc_file), self.name))
|
||||
return returncode
|
||||
|
||||
def exists_in_path(self):
|
||||
for path in os.environ.get('PATH', os.defpath).split(os.pathsep):
|
||||
if os.path.isfile(os.path.join(path, self.name)):
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_architecture(self):
|
||||
return self.architecture
|
||||
|
||||
@ -55,14 +61,13 @@ class Builder(object):
|
||||
|
||||
|
||||
class Pbuilder(Builder):
|
||||
def __init__(self, command="pbuilder"):
|
||||
Builder.__init__(self, "pbuilder")
|
||||
self._command = command
|
||||
def __init__(self, name="pbuilder"):
|
||||
Builder.__init__(self, name)
|
||||
|
||||
def build(self, dsc_file, dist, result_directory):
|
||||
_build_preparation(result_directory)
|
||||
cmd = ["sudo", "-E", "ARCH=" + self.architecture, "DIST=" + dist,
|
||||
self._command, "--build",
|
||||
self.name, "--build",
|
||||
"--architecture", self.architecture, "--distribution", dist,
|
||||
"--buildresult", result_directory, dsc_file]
|
||||
Logger.command(cmd)
|
||||
@ -71,7 +76,7 @@ class Pbuilder(Builder):
|
||||
|
||||
def update(self, dist):
|
||||
cmd = ["sudo", "-E", "ARCH=" + self.architecture, "DIST=" + dist,
|
||||
self._command, "--update",
|
||||
self.name, "--update",
|
||||
"--architecture", self.architecture, "--distribution", dist]
|
||||
Logger.command(cmd)
|
||||
returncode = subprocess.call(cmd)
|
||||
@ -79,20 +84,19 @@ class Pbuilder(Builder):
|
||||
|
||||
|
||||
class Pbuilderdist(Builder):
|
||||
def __init__(self, command="pbuilder-dist"):
|
||||
Builder.__init__(self, "pbuilder-dist")
|
||||
self._command = command
|
||||
def __init__(self, name="pbuilder-dist"):
|
||||
Builder.__init__(self, name)
|
||||
|
||||
def build(self, dsc_file, dist, result_directory):
|
||||
_build_preparation(result_directory)
|
||||
cmd = [self._command, dist, self.architecture,
|
||||
cmd = [self.name, dist, self.architecture,
|
||||
"build", dsc_file, "--buildresult", result_directory]
|
||||
Logger.command(cmd)
|
||||
returncode = subprocess.call(cmd)
|
||||
return self._build_failure(returncode, dsc_file)
|
||||
|
||||
def update(self, dist):
|
||||
cmd = [self._command, dist, self.architecture, "update"]
|
||||
cmd = [self.name, dist, self.architecture, "update"]
|
||||
Logger.command(cmd)
|
||||
returncode = subprocess.call(cmd)
|
||||
return self._update_failure(returncode, dist)
|
||||
@ -149,16 +153,19 @@ class Sbuild(Builder):
|
||||
|
||||
_SUPPORTED_BUILDERS = {
|
||||
"cowbuilder": lambda: Pbuilder("cowbuilder"),
|
||||
"cowbuilder-dist": lambda: Pbuilderdist("cowbuilderdist"),
|
||||
"cowbuilder-dist": lambda: Pbuilderdist("cowbuilder-dist"),
|
||||
"pbuilder": lambda: Pbuilder(),
|
||||
"pbuilder-dist": lambda: Pbuilderdist(),
|
||||
"sbuild": lambda: Sbuild(),
|
||||
}
|
||||
|
||||
def get_builder(builder):
|
||||
if builder in _SUPPORTED_BUILDERS:
|
||||
return _SUPPORTED_BUILDERS[builder]()
|
||||
def get_builder(name):
|
||||
if name in _SUPPORTED_BUILDERS:
|
||||
builder = _SUPPORTED_BUILDERS[name]()
|
||||
if builder.exists_in_path():
|
||||
return builder
|
||||
Logger.error("Builder doesn't appear to be installed: %s", name)
|
||||
else:
|
||||
Logger.error("Unsupported builder specified: %s.", builder)
|
||||
Logger.error("Unsupported builder specified: %s.", name)
|
||||
Logger.error("Supported builders: %s",
|
||||
", ".join(sorted(_SUPPORTED_BUILDERS.keys())))
|
||||
|
Loading…
x
Reference in New Issue
Block a user