import sys
import yaml
import gzip
+import lzma
from voluptuous import Schema, Required, All, Any, Length, Range, Match, Url
from optparse import OptionParser
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({
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')
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
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: