From d110c24efff2d4893ad68dd048eab652f174af6d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Mart=C3=AD?= Date: Thu, 3 Jul 2014 00:27:44 +0200 Subject: [PATCH] Find aapt as part of the main config initialisation --- fdroidserver/build.py | 4 +--- fdroidserver/common.py | 22 ++++++++++++++++------ fdroidserver/update.py | 4 +--- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 3c3b96f9..664177a5 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -772,9 +772,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d if not os.path.exists(src): raise BuildException("Unsigned apk is not at expected location of " + src) - p = SilentPopen([os.path.join(config['sdk_path'], 'build-tools', - config['build_tools'], 'aapt'), - 'dump', 'badging', src]) + p = SilentPopen([config['aapt'], 'dump', 'badging', src]) vercode = None version = None diff --git a/fdroidserver/common.py b/fdroidserver/common.py index db885a03..949fdd1d 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -125,10 +125,25 @@ def read_config(opts, config_file='config.py'): if not test_build_tools_exists(config): sys.exit(3) - env = os.environ + bin_paths = { + 'aapt': [ + os.path.join(config['sdk_path'], 'build-tools', config['build_tools'], 'aapt'), + ] + } + + for b, paths in bin_paths.items(): + config[b] = None + for path in paths: + if os.path.isfile(path): + config[b] = path + break + if config[b] is None: + logging.warn("Could not find %s in any of the following paths:\n%s" % ( + b, '\n'.join(paths))) # There is no standard, so just set up the most common environment # variables + env = os.environ for n in ['ANDROID_HOME', 'ANDROID_SDK']: env[n] = config['sdk_path'] for n in ['ANDROID_NDK', 'NDK']: @@ -176,11 +191,6 @@ def test_build_tools_exists(c): 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 diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 54ce4b61..a1955e5b 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -374,9 +374,7 @@ def scan_apks(apps, apkcache, repodir, knownapks): thisinfo['features'] = [] thisinfo['icons_src'] = {} thisinfo['icons'] = {} - p = SilentPopen([os.path.join(config['sdk_path'], 'build-tools', - config['build_tools'], 'aapt'), - 'dump', 'badging', apkfile]) + p = SilentPopen([config['aapt'], 'dump', 'badging', apkfile]) if p.returncode != 0: if options.delete_unknown: if os.path.exists(apkfile): -- 2.30.2