global options, config
options, parser = parse_commandline()
+
+ metadata_files = glob.glob('.fdroid.*[a-z]') # ignore files ending in ~
+ if len(metadata_files) > 1:
+ raise FDroidException("Only one local metadata file allowed! Found: "
+ + " ".join(metadata_files))
+
+ if not os.path.isdir('metadata') and len(metadata_files) == 0:
+ raise FDroidException("No app metadata found, nothing to process!")
+
if not options.appid and not options.all:
parser.error("option %s: If you really want to build all the apps, use --all" % "all")
thisconfig['java_paths'][m.group(1)] = d
for java_version in ('7', '8', '9'):
+ if java_version not 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):
config = common.read_config(options)
- if not 'jarsigner' in config:
+ if 'jarsigner' not in config:
logging.critical('Java jarsigner not found! Install in standard location or set java_paths!')
sys.exit(1)
err "pep8 is not installed!"
fi
-if [ ! -z $PY_FILES $PY_TEST_FILES ]; then
+if [ "$PY_FILES $PY_TEST_FILES" != " " ]; then
if ! $PYFLAKES $PY_FILES $PY_TEST_FILES; then
err "pyflakes tests failed!"
fi
fi
-if [ ! -z $PY_FILES ]; then
+if [ "$PY_FILES" != "" ]; then
if ! $PEP8 --ignore=$PEP8_IGNORE $PY_FILES; then
err "pep8 tests failed!"
fi
# The tests use a little hack in order to cleanly import the fdroidserver
# package locally like a regular package. pep8 doesn't see that, so this
# makes pep8 skip E402 on the test files that need that hack.
-if [ ! -z $PY_TEST_FILES ]; then
+if [ "$PY_TEST_FILES" != "" ]; then
if ! $PEP8 --ignore=$PEP8_IGNORE,E402 $PY_TEST_FILES; then
err "pep8 tests failed!"
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"