]> git.lizzy.rs Git - rust.git/commitdiff
Add tidy support for snapshots
authorCorey Richardson <corey@octayn.net>
Tue, 31 Dec 2013 05:22:01 +0000 (00:22 -0500)
committerCorey Richardson <corey@octayn.net>
Mon, 6 Jan 2014 02:36:53 +0000 (21:36 -0500)
This let's us specify exactly which snapshot a given note to update after
snapshot is for.

Closes #2483

src/etc/get-snapshot.py
src/etc/snapshot.py
src/etc/tidy.py

index 2e547dbbcd18556e9ae33f355928f31908c3e4ec..fb14deabf241b90519c11c2c80000776447b2f50 100755 (executable)
@@ -32,40 +32,6 @@ def unpack_snapshot(triple, dl_path):
   tar.close()
   shutil.rmtree(download_unpack_base)
 
-def determine_curr_snapshot(triple):
-  i = 0
-  platform = get_platform(triple)
-
-  found_file = False
-  found_snap = False
-  hsh = None
-  date = None
-  rev = None
-
-  f = open(snapshotfile)
-  for line in f.readlines():
-    i += 1
-    parsed = parse_line(i, line)
-    if (not parsed): continue
-
-    if found_snap and parsed["type"] == "file":
-      if parsed["platform"] == platform:
-        hsh = parsed["hash"]
-        found_file = True
-        break;
-    elif parsed["type"] == "snapshot":
-      date = parsed["date"]
-      rev = parsed["rev"]
-      found_snap = True
-
-  if not found_snap:
-    raise Exception("no snapshot entries in file")
-
-  if not found_file:
-    raise Exception("no snapshot file found for platform %s, rev %s" %
-                    (platform, rev))
-
-  return full_snapshot_name(date, rev, platform, hsh)
 
 # Main
 
index 5ac035942bffdb798238ed4aa87a4c0c653826c0..8aeee7e22ebe461745afed1d49f88b07bbf6cab3 100644 (file)
@@ -194,3 +194,41 @@ def make_snapshot(stage, triple):
     shutil.move(file0, file1)
 
     return file1
+
+def determine_curr_snapshot_info(triple):
+  i = 0
+  platform = get_platform(triple)
+
+  found_file = False
+  found_snap = False
+  hsh = None
+  date = None
+  rev = None
+
+  f = open(snapshotfile)
+  for line in f.readlines():
+    i += 1
+    parsed = parse_line(i, line)
+    if (not parsed): continue
+
+    if found_snap and parsed["type"] == "file":
+      if parsed["platform"] == platform:
+        hsh = parsed["hash"]
+        found_file = True
+        break;
+    elif parsed["type"] == "snapshot":
+      date = parsed["date"]
+      rev = parsed["rev"]
+      found_snap = True
+
+  if not found_snap:
+    raise Exception("no snapshot entries in file")
+
+  if not found_file:
+    raise Exception("no snapshot file found for platform %s, rev %s" %
+                    (platform, rev))
+
+  return (date, rev, platform, hsh)
+
+def determine_curr_snapshot(triple):
+  return full_snapshot_name(*determine_curr_snapshot_info(triple))
index 4815bc601f69acb2417fa09ebf03c2e75407fff7..947db1cfabd53287294fd76997272054c1376845 100644 (file)
@@ -3,6 +3,7 @@
 
 import sys, fileinput, subprocess, re
 from licenseck import *
+import snapshot
 
 err=0
 cols=100
@@ -52,6 +53,16 @@ try:
             match = re.match(r'^.*//\s*(NOTE.*)$', line)
             if match:
                 report_warn(match.group(1))
+            match = re.match(r'^.*//\s*SNAP\s+(\w+)', line)
+            if match:
+                hsh = match.group(1)
+                a, b, c, phash = snapshot.determine_curr_snapshot_info()
+                if not phash.startswith(hsh):
+                    report_err("Snapshot out of date: " + line)
+            else:
+                if "SNAP" in line:
+                    report_warn("Unmatched SNAP line: " + line)
+
         if (line.find('\t') != -1 and
             fileinput.filename().find("Makefile") == -1):
             report_err("tab character")