]> git.decadent.org.uk Git - dak.git/blobdiff - scripts/debian/dep11-basic-validate.py
Make release_team_removals.sh take input from stdin
[dak.git] / scripts / debian / dep11-basic-validate.py
index 6f46e14b08c526e4ac97ed42bb4fba9f64aec882..6ee3042b11f096a88b6268e12c50a6ec69decaa1 100755 (executable)
@@ -19,6 +19,7 @@ import os
 import sys
 import yaml
 import gzip
 import sys
 import yaml
 import gzip
+import lzma
 from voluptuous import Schema, Required, All, Any, Length, Range, Match, Url
 from optparse import OptionParser
 
 from voluptuous import Schema, Required, All, Any, Length, Range, Match, Url
 from optparse import OptionParser
 
@@ -27,8 +28,8 @@ schema_header = Schema({
     Required('Origin'): All(str, Length(min=1)),
     Required('Version'): All(str, Match(r'(\d+\.?)+$'), msg="Must be a valid version number"),
     Required('MediaBaseUrl'): All(str, Url()),
     Required('Origin'): All(str, Length(min=1)),
     Required('Version'): All(str, Match(r'(\d+\.?)+$'), msg="Must be a valid version number"),
     Required('MediaBaseUrl'): All(str, Url()),
-    'Time': All(str, str),
-    'Priority': All(str, int),
+    'Time': All(str),
+    'Priority': All(int),
 })
 
 schema_translated = Schema({
 })
 
 schema_translated = Schema({
@@ -154,6 +155,8 @@ def validate_file(fname):
     f = None
     if fname.endswith(".gz"):
         f = gzip.open(fname, 'r')
     f = None
     if fname.endswith(".gz"):
         f = gzip.open(fname, 'r')
+    elif fname.endswith(".xz"):
+        f = lzma.open(fname, 'r')
     else:
         f = open(fname, 'r')
 
     else:
         f = open(fname, 'r')
 
@@ -166,9 +169,13 @@ def validate_dir(dirname):
     ret = True
     for root, subfolders, files in os.walk(dirname):
         for fname in files:
     ret = True
     for root, subfolders, files in os.walk(dirname):
         for fname in files:
-             if fname.endswith(".yml.gz"):
-                 if not validate_file(os.path.join(root, fname)):
-                     ret = False
+            fpath = os.path.join(root, fname)
+            if os.path.islink(fpath):
+                add_issue("FATAL: Symlinks are not allowed")
+                return False
+            if fname.endswith(".yml.gz") or fname.endswith(".yml.xz"):
+                if not validate_file(fpath):
+                    ret = False
 
     return ret
 
 
     return ret
 
@@ -184,6 +191,9 @@ def main():
 
     if os.path.isdir(fname):
         ret = validate_dir(fname)
 
     if os.path.isdir(fname):
         ret = validate_dir(fname)
+    elif os.path.islink(fname):
+        add_issue("FATAL: Symlinks are not allowed")
+        ret = False
     else:
         ret = validate_file(fname)
     if ret:
     else:
         ret = validate_file(fname)
     if ret: