From 3aeea6fc90ee299e0790b3bab29b8fa5ed478018 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Mart=C3=AD?= Date: Thu, 5 May 2016 13:35:17 +0100 Subject: [PATCH] lint: Add check for missing and unused extlibs --- fdroidserver/lint.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/fdroidserver/lint.py b/fdroidserver/lint.py index daa1f1a5..426f7cd0 100644 --- a/fdroidserver/lint.py +++ b/fdroidserver/lint.py @@ -339,6 +339,34 @@ def check_format(app): yield "Run rewritemeta to fix formatting" +def check_extlib_dir(apps): + dir_path = os.path.join('build', 'extlib') + files = set() + for root, dirs, names in os.walk(dir_path): + for name in names: + files.add(os.path.join(root, name)[len(dir_path) + 1:]) + + used = set() + for app in apps: + for build in app.builds: + for path in build.extlibs: + if path not in files: + yield "%s: Unknown extlib %s in build '%s'" % (app.id, path, build.version) + else: + used.add(path) + + for path in files.difference(used): + if any(path.endswith(s) for s in [ + '.gitignore', + 'source.txt', 'origin.txt', 'md5.txt', + 'LICENSE', 'LICENSE.txt', + 'COPYING', 'COPYING.txt', + 'NOTICE', 'NOTICE.txt', + ]): + continue + yield "Unused extlib at %s" % os.path.join(dir_path, path) + + def main(): global config, options @@ -359,6 +387,14 @@ def main(): anywarns = False + apps_check_funcs = [ + check_extlib_dir, + ] + for check_func in apps_check_funcs: + for warn in check_func(apps.values()): + anywarns = True + print(warn) + for appid, app in apps.items(): if app.Disabled: continue -- 2.30.2