mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-14 02:50:12 +01:00
Show <filename>:<line> when complaining about metadata errors
This commit is contained in:
parent
e5539303ff
commit
7309b3c198
@ -386,7 +386,9 @@ def parse_srclib(metafile, **kw):
|
||||
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
|
||||
@ -394,7 +396,7 @@ def parse_srclib(metafile, **kw):
|
||||
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(',')
|
||||
@ -414,10 +416,7 @@ def read_metadata(xref=True, package=None, store=True):
|
||||
|
||||
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)))
|
||||
check_metadata(appinfo)
|
||||
apps.append(appinfo)
|
||||
|
||||
@ -549,13 +548,16 @@ def parse_metadata(metafile):
|
||||
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
|
||||
@ -568,11 +570,11 @@ def parse_metadata(metafile):
|
||||
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 = []
|
||||
|
||||
@ -585,9 +587,9 @@ def parse_metadata(metafile):
|
||||
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':
|
||||
@ -602,7 +604,7 @@ def parse_metadata(metafile):
|
||||
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':
|
||||
@ -617,7 +619,7 @@ def parse_metadata(metafile):
|
||||
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 = []
|
||||
@ -625,7 +627,7 @@ def parse_metadata(metafile):
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user