mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-05 18:50:09 +02:00
Merge branch 'post-txt-refactor' into 'master'
Post .txt refactor See merge request fdroid/fdroidserver!786
This commit is contained in:
commit
3954814a3b
@ -203,15 +203,12 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
|
|||||||
send_dir(lib)
|
send_dir(lib)
|
||||||
# Copy the metadata file too...
|
# Copy the metadata file too...
|
||||||
ftp.chdir(posixpath.join(homedir, 'srclibs'))
|
ftp.chdir(posixpath.join(homedir, 'srclibs'))
|
||||||
if os.path.isfile(os.path.join('srclibs', name + '.yml')):
|
srclibsfile = os.path.join('srclibs', name + '.yml')
|
||||||
ftp.put(os.path.join('srclibs', name + '.yml'),
|
if os.path.isfile(srclibsfile):
|
||||||
name + '.yml')
|
ftp.put(srclibsfile, os.path.basename(srclibsfile))
|
||||||
else:
|
else:
|
||||||
raise BuildException("can not find metadata file for "
|
raise BuildException(_('cannot find required srclibs: "{path}"')
|
||||||
"'{name}', please make sure it is "
|
.format(path=srclibsfile))
|
||||||
"present in your 'srclibs' folder."
|
|
||||||
"(supported format: yml)"
|
|
||||||
.format(name=name))
|
|
||||||
# Copy the main app source code
|
# Copy the main app source code
|
||||||
# (no need if it's a srclib)
|
# (no need if it's a srclib)
|
||||||
if (not basesrclib) and os.path.exists(build_dir):
|
if (not basesrclib) and os.path.exists(build_dir):
|
||||||
|
@ -520,15 +520,15 @@ def check_for_unsupported_metadata_files(basedir=""):
|
|||||||
if not os.path.exists(f + '.yml'):
|
if not os.path.exists(f + '.yml'):
|
||||||
print(_('"%s/" has no matching metadata file!') % f)
|
print(_('"%s/" has no matching metadata file!') % f)
|
||||||
return_value = True
|
return_value = True
|
||||||
elif os.path.splitext(f)[1][1:] == "yml":
|
elif f.endswith('.yml'):
|
||||||
packageName = os.path.splitext(os.path.basename(f))[0]
|
packageName = os.path.splitext(os.path.basename(f))[0]
|
||||||
if not common.is_valid_package_name(packageName):
|
if not common.is_valid_package_name(packageName):
|
||||||
print('"' + packageName + '" is an invalid package name!\n'
|
print('"' + packageName + '" is an invalid package name!\n'
|
||||||
+ 'https://developer.android.com/studio/build/application-id')
|
+ 'https://developer.android.com/studio/build/application-id')
|
||||||
return_value = True
|
return_value = True
|
||||||
else:
|
else:
|
||||||
print('"' + f.replace(basedir, '')
|
print(_('"{path}" is not a supported file format (use: metadata/*.yml)')
|
||||||
+ '" is not a supported file format (use: .yml)')
|
.format(path=f.replace(basedir, '')))
|
||||||
return_value = True
|
return_value = True
|
||||||
|
|
||||||
return return_value
|
return return_value
|
||||||
|
@ -927,8 +927,6 @@ def _decode_bool(s):
|
|||||||
def parse_metadata(metadatapath, check_vcs=False, refresh=True):
|
def parse_metadata(metadatapath, check_vcs=False, refresh=True):
|
||||||
'''parse metadata file, optionally checking the git repo for metadata first'''
|
'''parse metadata file, optionally checking the git repo for metadata first'''
|
||||||
|
|
||||||
_ignored, ext = fdroidserver.common.get_extension(metadatapath)
|
|
||||||
|
|
||||||
app = App()
|
app = App()
|
||||||
app.metadatapath = metadatapath
|
app.metadatapath = metadatapath
|
||||||
name, _ignored = fdroidserver.common.get_extension(os.path.basename(metadatapath))
|
name, _ignored = fdroidserver.common.get_extension(os.path.basename(metadatapath))
|
||||||
@ -937,11 +935,11 @@ def parse_metadata(metadatapath, check_vcs=False, refresh=True):
|
|||||||
else:
|
else:
|
||||||
app.id = name
|
app.id = name
|
||||||
|
|
||||||
if ext == 'yml':
|
if metadatapath.endswith('.yml'):
|
||||||
with open(metadatapath, 'r') as mf:
|
with open(metadatapath, 'r') as mf:
|
||||||
parse_yaml_metadata(mf, app)
|
parse_yaml_metadata(mf, app)
|
||||||
else:
|
else:
|
||||||
warn_or_exception(_('Unknown metadata format: {path} (use: .yml)')
|
warn_or_exception(_('Unknown metadata format: {path} (use: *.yml)')
|
||||||
.format(path=metadatapath))
|
.format(path=metadatapath))
|
||||||
|
|
||||||
if check_vcs and app.Repo:
|
if check_vcs and app.Repo:
|
||||||
@ -1167,14 +1165,12 @@ build_cont = re.compile(r'^[ \t]')
|
|||||||
|
|
||||||
|
|
||||||
def write_metadata(metadatapath, app):
|
def write_metadata(metadatapath, app):
|
||||||
_ignored, ext = fdroidserver.common.get_extension(metadatapath)
|
if metadatapath.endswith('.yml'):
|
||||||
|
|
||||||
if ext == 'yml':
|
|
||||||
if importlib.util.find_spec('ruamel.yaml'):
|
if importlib.util.find_spec('ruamel.yaml'):
|
||||||
with open(metadatapath, 'w') as mf:
|
with open(metadatapath, 'w') as mf:
|
||||||
return write_yaml(mf, app)
|
return write_yaml(mf, app)
|
||||||
else:
|
else:
|
||||||
raise FDroidException('ruamel.yaml not installed, can not write metadata.')
|
raise FDroidException(_('ruamel.yaml not installed, can not write metadata.'))
|
||||||
|
|
||||||
warn_or_exception(_('Unknown metadata format: %s') % metadatapath)
|
warn_or_exception(_('Unknown metadata format: %s') % metadatapath)
|
||||||
|
|
||||||
|
@ -38,8 +38,7 @@ def proper_format(app):
|
|||||||
# read in metadata.py
|
# read in metadata.py
|
||||||
with open(app.metadatapath, 'r') as f:
|
with open(app.metadatapath, 'r') as f:
|
||||||
cur_content = f.read()
|
cur_content = f.read()
|
||||||
_ignored, extension = common.get_extension(app.metadatapath)
|
if app.metadatapath.endswith('.yml'):
|
||||||
if extension == 'yml':
|
|
||||||
metadata.write_yaml(s, app)
|
metadata.write_yaml(s, app)
|
||||||
content = s.getvalue()
|
content = s.getvalue()
|
||||||
s.close()
|
s.close()
|
||||||
@ -68,12 +67,11 @@ def main():
|
|||||||
|
|
||||||
for appid, app in apps.items():
|
for appid, app in apps.items():
|
||||||
path = app.metadatapath
|
path = app.metadatapath
|
||||||
base, ext = common.get_extension(path)
|
if path.endswith('.yml'):
|
||||||
if ext != "yml":
|
|
||||||
logging.info(_("Ignoring {ext} file at '{path}'").format(ext=ext, path=path))
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
logging.info(_("Rewriting '{appid}'").format(appid=appid))
|
logging.info(_("Rewriting '{appid}'").format(appid=appid))
|
||||||
|
else:
|
||||||
|
logging.warning(_('Cannot rewrite "{path}"').format(path=path))
|
||||||
|
continue
|
||||||
|
|
||||||
if options.list:
|
if options.list:
|
||||||
if not proper_format(app):
|
if not proper_format(app):
|
||||||
|
@ -265,33 +265,33 @@ def scan_source(build_dir, build=metadata.Build()):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
path_in_build_dir = os.path.relpath(filepath, build_dir)
|
path_in_build_dir = os.path.relpath(filepath, build_dir)
|
||||||
_ignored, ext = common.get_extension(path_in_build_dir)
|
extension = os.path.splitext(path_in_build_dir)[1]
|
||||||
|
|
||||||
if curfile in ('gradle-wrapper.jar', 'gradlew', 'gradlew.bat'):
|
if curfile in ('gradle-wrapper.jar', 'gradlew', 'gradlew.bat'):
|
||||||
removeproblem(curfile, path_in_build_dir, filepath)
|
removeproblem(curfile, path_in_build_dir, filepath)
|
||||||
elif ext == 'apk':
|
elif extension == '.apk':
|
||||||
removeproblem(_('Android APK file'), path_in_build_dir, filepath)
|
removeproblem(_('Android APK file'), path_in_build_dir, filepath)
|
||||||
|
|
||||||
elif ext == 'a':
|
elif extension == '.a':
|
||||||
count += handleproblem(_('static library'), path_in_build_dir, filepath)
|
count += handleproblem(_('static library'), path_in_build_dir, filepath)
|
||||||
elif ext == 'aar':
|
elif extension == '.aar':
|
||||||
count += handleproblem(_('Android AAR library'), path_in_build_dir, filepath)
|
count += handleproblem(_('Android AAR library'), path_in_build_dir, filepath)
|
||||||
elif ext == 'class':
|
elif extension == '.class':
|
||||||
count += handleproblem(_('Java compiled class'), path_in_build_dir, filepath)
|
count += handleproblem(_('Java compiled class'), path_in_build_dir, filepath)
|
||||||
elif ext == 'dex':
|
elif extension == '.dex':
|
||||||
count += handleproblem(_('Android DEX code'), path_in_build_dir, filepath)
|
count += handleproblem(_('Android DEX code'), path_in_build_dir, filepath)
|
||||||
elif ext == 'gz':
|
elif extension == '.gz':
|
||||||
count += handleproblem(_('gzip file archive'), path_in_build_dir, filepath)
|
count += handleproblem(_('gzip file archive'), path_in_build_dir, filepath)
|
||||||
elif ext == 'so':
|
elif extension == '.so':
|
||||||
count += handleproblem(_('shared library'), path_in_build_dir, filepath)
|
count += handleproblem(_('shared library'), path_in_build_dir, filepath)
|
||||||
elif ext == 'zip':
|
elif extension == '.zip':
|
||||||
count += handleproblem(_('ZIP file archive'), path_in_build_dir, filepath)
|
count += handleproblem(_('ZIP file archive'), path_in_build_dir, filepath)
|
||||||
elif ext == 'jar':
|
elif extension == '.jar':
|
||||||
for name in suspects_found(curfile):
|
for name in suspects_found(curfile):
|
||||||
count += handleproblem('usual suspect \'%s\'' % name, path_in_build_dir, filepath)
|
count += handleproblem('usual suspect \'%s\'' % name, path_in_build_dir, filepath)
|
||||||
count += handleproblem(_('Java JAR file'), path_in_build_dir, filepath)
|
count += handleproblem(_('Java JAR file'), path_in_build_dir, filepath)
|
||||||
|
|
||||||
elif ext == 'java':
|
elif extension == '.java':
|
||||||
if not os.path.isfile(filepath):
|
if not os.path.isfile(filepath):
|
||||||
continue
|
continue
|
||||||
with open(filepath, 'r', errors='replace') as f:
|
with open(filepath, 'r', errors='replace') as f:
|
||||||
@ -300,7 +300,7 @@ def scan_source(build_dir, build=metadata.Build()):
|
|||||||
count += handleproblem('DexClassLoader', path_in_build_dir, filepath)
|
count += handleproblem('DexClassLoader', path_in_build_dir, filepath)
|
||||||
break
|
break
|
||||||
|
|
||||||
elif ext == 'gradle':
|
elif extension == '.gradle':
|
||||||
if not os.path.isfile(filepath):
|
if not os.path.isfile(filepath):
|
||||||
continue
|
continue
|
||||||
with open(filepath, 'r', errors='replace') as f:
|
with open(filepath, 'r', errors='replace') as f:
|
||||||
@ -316,7 +316,7 @@ def scan_source(build_dir, build=metadata.Build()):
|
|||||||
if not any(r.match(url) for r in allowed_repos):
|
if not any(r.match(url) for r in allowed_repos):
|
||||||
count += handleproblem('unknown maven repo \'%s\'' % url, path_in_build_dir, filepath)
|
count += handleproblem('unknown maven repo \'%s\'' % url, path_in_build_dir, filepath)
|
||||||
|
|
||||||
elif ext in ['', 'bin', 'out', 'exe']:
|
elif extension in ['', '.bin', '.out', '.exe']:
|
||||||
if is_binary(filepath):
|
if is_binary(filepath):
|
||||||
count += handleproblem('binary', path_in_build_dir, filepath)
|
count += handleproblem('binary', path_in_build_dir, filepath)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user