aboutsummaryrefslogtreecommitdiff
path: root/src/etc/snapshot.py
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-05-03 07:23:05 -0700
committerGraydon Hoare <[email protected]>2011-05-03 07:23:05 -0700
commita919a3082d04a24a6aaa13ffcef98bb06307addc (patch)
tree8451b0595c3ae849d8f19a7488a9d64396c19a5f /src/etc/snapshot.py
parentAdd forgotten 'snap.mk' (diff)
downloadrust-a919a3082d04a24a6aaa13ffcef98bb06307addc.tar.xz
rust-a919a3082d04a24a6aaa13ffcef98bb06307addc.zip
More snapshot logic refactoring.
Diffstat (limited to 'src/etc/snapshot.py')
-rw-r--r--src/etc/snapshot.py33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/etc/snapshot.py b/src/etc/snapshot.py
index 788b5b62..28f94290 100644
--- a/src/etc/snapshot.py
+++ b/src/etc/snapshot.py
@@ -37,13 +37,13 @@ def parse_line(n, line):
"rev": match.group(3)}
-def partial_snapshot_name(date, rev, kernel, cpu):
- return ("rust-stage0-%s-%s-%s-%s.tar.bz2"
- % (date, rev, kernel, cpu))
+def partial_snapshot_name(date, rev, platform):
+ return ("rust-stage0-%s-%s-%s.tar.bz2"
+ % (date, rev, platform))
-def full_snapshot_name(date, rev, kernel, cpu, hsh):
- return ("rust-stage0-%s-%s-%s-%s-%s.tar.bz2"
- % (date, rev, kernel, cpu, hsh))
+def full_snapshot_name(date, rev, platform, hsh):
+ return ("rust-stage0-%s-%s-%s-%s.tar.bz2"
+ % (date, rev, platform, hsh))
def get_kernel():
@@ -98,3 +98,24 @@ def hash_file(x):
h = hashlib.sha1()
h.update(open(x, "rb").read())
return scrub(h.hexdigest())
+
+
+def make_snapshot():
+ kernel = get_kernel()
+ platform = get_platform()
+ rev = local_rev_short_sha()
+ date = local_rev_committer_date().split()[0]
+
+ file0 = partial_snapshot_name(date, rev, platform)
+
+ tar = tarfile.open(file0, "w:bz2")
+ for name in snapshot_files[kernel]:
+ tar.add(os.path.join("stage2", name),
+ os.path.join("rust-stage0", name))
+ tar.close()
+
+ h = hash_file(file0)
+ file1 = full_snapshot_name(date, rev, platform, h)
+
+ shutil.move(file0, file1)
+ return file1