From 04d839328bf69551c5db413fc348943760dcc95a Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Fri, 26 Sep 2014 15:11:20 +0100 Subject: Have the Rust snapshot directory include the Rust version and hash. That way, whenever rust-snapshot-hash changes, mach will look for the Rust snapshot in a different directory and re-boostrap as needed. However, older rust version will be left behind never cleaned up. This is good for git-bisect, but not for disk space: the current snapshot is 618 MB. In the future, we may want `mach clean` or some other comment to remove unused Rust snapshots. CC #3388 --- python/servo/bootstrap_commands.py | 39 +++++++------------------------------- 1 file changed, 7 insertions(+), 32 deletions(-) (limited to 'python/servo/bootstrap_commands.py') diff --git a/python/servo/bootstrap_commands.py b/python/servo/bootstrap_commands.py index 1d682adb7f5..cca52b7f1f4 100644 --- a/python/servo/bootstrap_commands.py +++ b/python/servo/bootstrap_commands.py @@ -14,31 +14,7 @@ from mach.decorators import ( Command, ) -from servo.command_base import CommandBase, cd - - -def host_triple(): - os_type = subprocess.check_output(["uname", "-s"]).strip().lower() - if os_type == "linux": - os_type = "unknown-linux-gnu" - elif os_type == "darwin": - os_type = "apple-darwin" - elif os_type == "android": - os_type == "linux-androideabi" - else: - os_type == "unknown" - - cpu_type = subprocess.check_output(["uname", "-m"]).strip().lower() - if cpu_type in ["i386", "i486", "i686", "i768", "x86"]: - cpu_type = "i686" - elif cpu_type in ["x86_64", "x86-64", "x64", "amd64"]: - cpu_type = "x86_64" - elif cpu_type == "arm": - cpu_type = "arm" - else: - cpu_type = "unknown" - - return "%s-%s" % (cpu_type, os_type) +from servo.command_base import CommandBase, cd, host_triple def download(desc, src, dst): @@ -90,7 +66,8 @@ class MachCommands(CommandBase): action='store_true', help='Force download even if a snapshot already exists') def bootstrap_rustc(self, force=False): - rust_dir = path.join(self.context.topdir, "rust") + rust_dir = path.join( + self.context.topdir, "rust", *self.rust_snapshot_path().split("/")) if not force and path.exists(path.join(rust_dir, "bin", "rustc")): print("Snapshot Rust compiler already downloaded.", end=" ") print("Use |bootstrap_rust --force| to download again.") @@ -98,13 +75,11 @@ class MachCommands(CommandBase): if path.isdir(rust_dir): shutil.rmtree(rust_dir) - os.mkdir(rust_dir) + os.makedirs(rust_dir) - filename = path.join(self.context.topdir, "rust-snapshot-hash") - snapshot_hash = open(filename).read().strip() - snapshot_path = "%s-%s.tar.gz" % (snapshot_hash, host_triple()) - snapshot_url = "https://servo-rust.s3.amazonaws.com/%s" % snapshot_path - tgz_file = path.join(rust_dir, path.basename(snapshot_path)) + snapshot_url = ("https://servo-rust.s3.amazonaws.com/%s.tar.gz" + % self.rust_snapshot_path()) + tgz_file = rust_dir + '.tar.gz' download("Rust snapshot", snapshot_url, tgz_file) -- cgit v1.2.3