mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-13 16:11:15 +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
|
ubuntu-dev-tools (0.127) unstable; urgency=low
|
||||||
|
|
||||||
* Move debian-distro-info, distro-info, and ubuntu-distro-info from
|
* 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))
|
(os.path.basename(dsc_file), self.name))
|
||||||
return returncode
|
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):
|
def get_architecture(self):
|
||||||
return self.architecture
|
return self.architecture
|
||||||
|
|
||||||
@ -55,14 +61,13 @@ class Builder(object):
|
|||||||
|
|
||||||
|
|
||||||
class Pbuilder(Builder):
|
class Pbuilder(Builder):
|
||||||
def __init__(self, command="pbuilder"):
|
def __init__(self, name="pbuilder"):
|
||||||
Builder.__init__(self, "pbuilder")
|
Builder.__init__(self, name)
|
||||||
self._command = command
|
|
||||||
|
|
||||||
def build(self, dsc_file, dist, result_directory):
|
def build(self, dsc_file, dist, result_directory):
|
||||||
_build_preparation(result_directory)
|
_build_preparation(result_directory)
|
||||||
cmd = ["sudo", "-E", "ARCH=" + self.architecture, "DIST=" + dist,
|
cmd = ["sudo", "-E", "ARCH=" + self.architecture, "DIST=" + dist,
|
||||||
self._command, "--build",
|
self.name, "--build",
|
||||||
"--architecture", self.architecture, "--distribution", dist,
|
"--architecture", self.architecture, "--distribution", dist,
|
||||||
"--buildresult", result_directory, dsc_file]
|
"--buildresult", result_directory, dsc_file]
|
||||||
Logger.command(cmd)
|
Logger.command(cmd)
|
||||||
@ -71,7 +76,7 @@ class Pbuilder(Builder):
|
|||||||
|
|
||||||
def update(self, dist):
|
def update(self, dist):
|
||||||
cmd = ["sudo", "-E", "ARCH=" + self.architecture, "DIST=" + dist,
|
cmd = ["sudo", "-E", "ARCH=" + self.architecture, "DIST=" + dist,
|
||||||
self._command, "--update",
|
self.name, "--update",
|
||||||
"--architecture", self.architecture, "--distribution", dist]
|
"--architecture", self.architecture, "--distribution", dist]
|
||||||
Logger.command(cmd)
|
Logger.command(cmd)
|
||||||
returncode = subprocess.call(cmd)
|
returncode = subprocess.call(cmd)
|
||||||
@ -79,20 +84,19 @@ class Pbuilder(Builder):
|
|||||||
|
|
||||||
|
|
||||||
class Pbuilderdist(Builder):
|
class Pbuilderdist(Builder):
|
||||||
def __init__(self, command="pbuilder-dist"):
|
def __init__(self, name="pbuilder-dist"):
|
||||||
Builder.__init__(self, "pbuilder-dist")
|
Builder.__init__(self, name)
|
||||||
self._command = command
|
|
||||||
|
|
||||||
def build(self, dsc_file, dist, result_directory):
|
def build(self, dsc_file, dist, result_directory):
|
||||||
_build_preparation(result_directory)
|
_build_preparation(result_directory)
|
||||||
cmd = [self._command, dist, self.architecture,
|
cmd = [self.name, dist, self.architecture,
|
||||||
"build", dsc_file, "--buildresult", result_directory]
|
"build", dsc_file, "--buildresult", result_directory]
|
||||||
Logger.command(cmd)
|
Logger.command(cmd)
|
||||||
returncode = subprocess.call(cmd)
|
returncode = subprocess.call(cmd)
|
||||||
return self._build_failure(returncode, dsc_file)
|
return self._build_failure(returncode, dsc_file)
|
||||||
|
|
||||||
def update(self, dist):
|
def update(self, dist):
|
||||||
cmd = [self._command, dist, self.architecture, "update"]
|
cmd = [self.name, dist, self.architecture, "update"]
|
||||||
Logger.command(cmd)
|
Logger.command(cmd)
|
||||||
returncode = subprocess.call(cmd)
|
returncode = subprocess.call(cmd)
|
||||||
return self._update_failure(returncode, dist)
|
return self._update_failure(returncode, dist)
|
||||||
@ -149,16 +153,19 @@ class Sbuild(Builder):
|
|||||||
|
|
||||||
_SUPPORTED_BUILDERS = {
|
_SUPPORTED_BUILDERS = {
|
||||||
"cowbuilder": lambda: Pbuilder("cowbuilder"),
|
"cowbuilder": lambda: Pbuilder("cowbuilder"),
|
||||||
"cowbuilder-dist": lambda: Pbuilderdist("cowbuilderdist"),
|
"cowbuilder-dist": lambda: Pbuilderdist("cowbuilder-dist"),
|
||||||
"pbuilder": lambda: Pbuilder(),
|
"pbuilder": lambda: Pbuilder(),
|
||||||
"pbuilder-dist": lambda: Pbuilderdist(),
|
"pbuilder-dist": lambda: Pbuilderdist(),
|
||||||
"sbuild": lambda: Sbuild(),
|
"sbuild": lambda: Sbuild(),
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_builder(builder):
|
def get_builder(name):
|
||||||
if builder in _SUPPORTED_BUILDERS:
|
if name in _SUPPORTED_BUILDERS:
|
||||||
return _SUPPORTED_BUILDERS[builder]()
|
builder = _SUPPORTED_BUILDERS[name]()
|
||||||
|
if builder.exists_in_path():
|
||||||
|
return builder
|
||||||
|
Logger.error("Builder doesn't appear to be installed: %s", name)
|
||||||
else:
|
else:
|
||||||
Logger.error("Unsupported builder specified: %s.", builder)
|
Logger.error("Unsupported builder specified: %s.", name)
|
||||||
Logger.error("Supported builders: %s",
|
Logger.error("Supported builders: %s",
|
||||||
", ".join(sorted(_SUPPORTED_BUILDERS.keys())))
|
", ".join(sorted(_SUPPORTED_BUILDERS.keys())))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user