summaryrefslogtreecommitdiff
path: root/lib/thandy/formats.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/thandy/formats.py')
-rw-r--r--lib/thandy/formats.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/thandy/formats.py b/lib/thandy/formats.py
index 7ae6080..4afbd00 100644
--- a/lib/thandy/formats.py
+++ b/lib/thandy/formats.py
@@ -451,7 +451,8 @@ PACKAGE_SCHEMA = S.Obj(
version=VERSION_SCHEMA,
format=S.Obj(),
ts=TIME_SCHEMA,
- files=S.ListOf(S.Struct([RELPATH_SCHEMA, HASH_SCHEMA])),
+ files=S.ListOf(S.Struct([RELPATH_SCHEMA, HASH_SCHEMA],
+ allowMore=True)),
shortdesc=S.DictOf(S.AnyStr(), S.AnyStr()),
longdesc=S.DictOf(S.AnyStr(), S.AnyStr()))
@@ -612,23 +613,29 @@ def makePackageObj(config_fname, package_fname):
'format',
'location',
'relpath',
- ], (), preload)
+ ], ['rpm_version', 'exe_args'], preload)
f = open(package_fname, 'rb')
digest = getFileDigest(f)
# Check fields!
+ extra = {}
result = { '_type' : "Package",
'ts' : formatTime(time.time()),
'name' : r['name'],
'location' : r['location'], #DOCDOC
'version' : r['version'],
'format' : r['format'],
- 'files' : [ [ r['relpath'], formatHash(digest) ] ],
+ 'files' : [ [ r['relpath'], formatHash(digest), extra ] ],
'shortdesc' : shortDescs,
'longdesc' : longDescs
}
+ if format == 'rpm' and r.get('rpm_version'):
+ extra['rpm_version'] = r['rpm_version']
+ elif format == 'exe' and r.get('exe_args') != None:
+ extra['exe_args'] = r['exe_args']
+
PACKAGE_SCHEMA.checkMatch(result)
return result