From 450409ef14c9bffcf7829c84e57a4b12c18df511 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20K=C3=BChle?= Date: Fri, 18 Sep 2015 17:22:34 +0200 Subject: [PATCH] Added support for gradle flavor specific dependencies in usual suspects check. --- fdroidserver/scanner.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/fdroidserver/scanner.py b/fdroidserver/scanner.py index f46627d3..9ebfdb17 100644 --- a/fdroidserver/scanner.py +++ b/fdroidserver/scanner.py @@ -31,6 +31,15 @@ config = None options = None +def get_gradle_compile_commands(thisbuild): + compileCommands = ['compile', 'releaseCompile'] + if thisbuild['gradle'] != ['yes']: + compileCommands += [flavor + 'Compile' for flavor in thisbuild['gradle']] + compileCommands += [flavor + 'ReleaseCompile' for flavor in thisbuild['gradle']] + + return [re.compile(r'\s*' + c, re.IGNORECASE) for c in compileCommands] + + # Scan the source code in the given directory (and all subdirectories) # and return the number of fatal problems encountered def scan_source(build_dir, root_dir, thisbuild): @@ -114,6 +123,11 @@ def scan_source(build_dir, root_dir, thisbuild): d = f.read(1024) return bool(d.translate(None, textchars)) + gradle_compile_commands = get_gradle_compile_commands(thisbuild) + + def is_used_by_gradle(line): + return any(command.match(line) for command in gradle_compile_commands) + # Iterate through all files in the source code for r, d, f in os.walk(build_dir, topdown=True): @@ -157,8 +171,9 @@ def scan_source(build_dir, root_dir, thisbuild): continue for i, line in enumerate(file(fp)): i = i + 1 - for name in suspects_found(line): - count += handleproblem('usual supect \'%s\' at line %d' % (name, i), fd, fp) + if is_used_by_gradle(line): + for name in suspects_found(line): + count += handleproblem('usual supect \'%s\' at line %d' % (name, i), fd, fp) elif ext in ['', 'bin', 'out', 'exe']: if is_binary(fp): -- 2.30.2