common: do not crash if the java_paths are not what is expected

Many commands work without the JDK installed, and it is also possible that
someone is using only JDK 8 or 9.
This commit is contained in:
Hans-Christoph Steiner 2016-02-11 23:49:54 +01:00
parent 7feeaad095
commit 751fd3fb0a
2 changed files with 37 additions and 0 deletions

View File

@ -157,6 +157,8 @@ def fill_config_defaults(thisconfig):
thisconfig['java_paths'][m.group(1)] = d
for java_version in ('7', '8', '9'):
if not java_version in thisconfig['java_paths']:
continue
java_home = thisconfig['java_paths'][java_version]
jarsigner = os.path.join(java_home, 'bin', 'jarsigner')
if os.path.exists(jarsigner):

View File

@ -156,6 +156,41 @@ fi
set -e
#------------------------------------------------------------------------------#
echo_header "ensure commands that don't need the JDK work without a JDK configed"
REPOROOT=`create_test_dir`
cd $REPOROOT
mkdir repo
mkdir metadata
echo "License:GPL" >> metadata/fake.txt
echo "Summary:Yup still fake" >> metadata/fake.txt
echo "Categories:Internet" >> metadata/fake.txt
echo "Description:" >> metadata/fake.txt
echo "this is fake" >> metadata/fake.txt
echo "." >> metadata/fake.txt
# fake that no JDKs are available
echo 'java_paths = {}' > config.py
LOCAL_COPY_DIR=`create_test_dir`/fdroid
mkdir -p $LOCAL_COPY_DIR/repo
echo "local_copy_dir = '$LOCAL_COPY_DIR'" >> config.py
$fdroid checkupdates
$fdroid gpgsign
$fdroid lint
$fdroid readmeta
$fdroid rewritemeta fake
$fdroid server update
$fdroid scanner
# run these to get their output, but the are not setup, so don't fail
$fdroid build || true
$fdroid import || true
$fdroid install || true
#------------------------------------------------------------------------------#
echo_header "create a source tarball and use that to build a repo"