if metafile is None:
return thisinfo
+ n = 0
for line in metafile:
+ n += 1
line = line.rstrip('\r\n')
if not line or line.startswith("#"):
continue
try:
field, value = line.split(':',1)
except ValueError:
- raise MetaDataException("Invalid metadata in " + metafile.name + " at: " + line)
+ raise MetaDataException("Invalid metadata in %s:%d" % (line, n))
if field == "Subdir":
thisinfo[field] = value.split(',')
for metafile in sorted(glob.glob(os.path.join('metadata', '*.txt'))):
if package is None or metafile == os.path.join('metadata', package + '.txt'):
- try:
- appinfo = parse_metadata(metafile)
- except Exception, e:
- raise MetaDataException("Problem reading metadata file %s: - %s" % (metafile, str(e)))
+ appinfo = parse_metadata(metafile)
check_metadata(appinfo)
apps.append(appinfo)
curcomments = []
curbuild = None
+ c = 0
for line in metafile:
+ c += 1
+ linedesc = "%s:%d" % (metafile.name, c)
line = line.rstrip('\r\n')
if mode == 3:
if not any(line.startswith(s) for s in (' ', '\t')):
if 'commit' not in curbuild and 'disable' not in curbuild:
raise MetaDataException("No commit specified for {0} in {1}".format(
- curbuild['version'], metafile.name))
+ curbuild['version'], linedesc))
thisinfo['builds'].append(curbuild)
add_comments('build:' + curbuild['version'])
mode = 0
bv = bl.split('=', 1)
if len(bv) != 2:
raise MetaDataException("Invalid build flag at {0} in {1}".
- format(buildlines[0], metafile.name))
+ format(buildlines[0], linedesc))
name, val = bv
if name in curbuild:
raise MetaDataException("Duplicate definition on {0} in version {1} of {2}".
- format(name, curbuild['version'], metafile.name))
+ format(name, curbuild['version'], linedesc))
curbuild[name] = val.lstrip()
buildlines = []
try:
field, value = line.split(':',1)
except ValueError:
- raise MetaDataException("Invalid metadata in " + metafile.name + " at: " + line)
+ raise MetaDataException("Invalid metadata in "+linedesc)
if field != field.strip() or value != value.strip():
- raise MetaDataException("Extra spacing found in " + metafile.name + " at: " + line)
+ raise MetaDataException("Extra spacing found in "+linedesc)
# Translate obsolete fields...
if field == 'Market Version':
mode = 1
thisinfo[field] = []
if value:
- raise MetaDataException("Unexpected text on same line as " + field + " in " + metafile.name)
+ raise MetaDataException("Unexpected text on same line as " + field + " in " + linedesc)
elif fieldtype == 'string':
thisinfo[field] = value
elif fieldtype == 'build':
vv = value.split(',')
if len(vv) != 2:
raise MetaDataException('Build should have comma-separated version and vercode, not "{0}", in {1}'.
- format(value, metafile.name))
+ format(value, linedesc))
curbuild['version'] = vv[0]
curbuild['vercode'] = vv[1]
buildlines = []
elif fieldtype == 'obsolete':
pass # Just throw it away!
else:
- raise MetaDataException("Unrecognised field type for " + field + " in " + metafile.name)
+ raise MetaDataException("Unrecognised field type for " + field + " in " + linedesc)
elif mode == 1: # Multiline field
if line == '.':
mode = 0