return True
+ def test_build_tools_exists(c):
+ if not test_sdk_exists(c):
+ return False
+ build_tools = os.path.join(c['sdk_path'], 'build-tools')
+ versioned_build_tools = os.path.join(build_tools, c['build_tools'])
+ if not os.path.isdir(versioned_build_tools):
+ logging.critical('Android Build Tools path "'
+ + versioned_build_tools + '" does not exist!')
+ return False
+ if not os.path.exists(os.path.join(c['sdk_path'], 'build-tools', c['build_tools'], 'aapt')):
+ logging.critical('Android Build Tools "'
+ + versioned_build_tools
+ + '" does not contain "aapt"!')
+ return False
+ return True
+
+
def write_password_file(pwtype, password=None):
'''
writes out passwords to a protected file instead of passing passwords as
return FDroidPopen(commands, cwd=cwd, shell=shell, output=False)
- def FDroidPopen(commands, cwd=None, shell=False, output=True):
+ def FDroidPopen(commands, cwd=None, shell=False, output=False):
"""
Run a command and capture the possibly huge output.
while not stdout_reader.eof():
while not stdout_queue.empty():
line = stdout_queue.get()
- if output and options.verbose:
+ if output or options.verbose:
# Output directly to console
sys.stdout.write(line)
sys.stdout.flush()
signing_configs = re.compile(r'^[\t ]*signingConfigs[ \t]*{[ \t]*$')
line_matches = [
re.compile(r'^[\t ]*signingConfig [^ ]*$'),
- re.compile(r'.*android\.signingConfigs\..*'),
+ re.compile(r'.*android\.signingConfigs\.[^{]*$'),
re.compile(r'.*variant\.outputFile = .*'),
re.compile(r'.*\.readLine\(.*'),
]