Automatically update cargo when necessary

This commit is contained in:
Matt Brubeck 2014-11-05 13:59:31 -08:00
parent 75b340a243
commit 2ee516fa7c
3 changed files with 14 additions and 4 deletions

View file

@ -74,7 +74,7 @@ class CommandBase(object):
context.sharedir, "rust", *self.rust_snapshot_path().split("/"))
if not self.config["tools"]["system-cargo"]:
self.config["tools"]["cargo-root"] = path.join(
context.sharedir, "cargo")
context.sharedir, "cargo", self.cargo_build_id())
self.config.setdefault("build", {})
self.config["build"].setdefault("android", False)
@ -85,6 +85,7 @@ class CommandBase(object):
self.config["android"].setdefault("toolchain", "")
_rust_snapshot_path = None
_cargo_build_id = None
def rust_snapshot_path(self):
if self._rust_snapshot_path is None:
@ -93,6 +94,12 @@ class CommandBase(object):
self._rust_snapshot_path = "%s-%s" % (snapshot_hash, host_triple())
return self._rust_snapshot_path
def cargo_build_id(self):
if self._cargo_build_id is None:
filename = path.join(self.context.topdir, "cargo-nightly-build")
self._cargo_build_id = open(filename).read().strip()
return self._cargo_build_id
def build_env(self):
"""Return an extended environment dictionary."""
env = os.environ.copy()