diff --git a/examples/fdroid_fetchsrclibs.py b/examples/fdroid_fetchsrclibs.py new file mode 100644 index 00000000..213a05c5 --- /dev/null +++ b/examples/fdroid_fetchsrclibs.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 +# +# an fdroid plugin for setting up srclibs +# +# The 'fdroid build' gitlab-ci job uses --on-server, which does not +# set up the srclibs. This plugin does the missing setup. + +import argparse +import os +import pprint +from fdroidserver import _, common, metadata + +fdroid_summary = 'prepare the srclibs for `fdroid build --on-server`' + + +def main(): + common.config = { + 'accepted_formats': 'yml', + 'sdk_path': os.getenv('ANDROID_HOME'), + } + common.fill_config_defaults(common.config) + parser = argparse.ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") + common.setup_global_opts(parser) + parser.add_argument("appid", nargs='*', help=_("applicationId with optional versionCode in the form APPID[:VERCODE]")) + metadata.add_metadata_arguments(parser) + options = parser.parse_args() + common.options = options + pkgs = common.read_pkg_args(options.appid, True) + allapps = metadata.read_metadata(pkgs) + apps = common.read_app_args(options.appid, allapps, True) + srclib_dir = os.path.join('build', 'srclib') + os.makedirs(srclib_dir, exist_ok=True) + srclibpaths = [] + for appid, app in apps.items(): + for build in app.get('Builds', []): + for lib in build.srclibs: + srclibpaths.append(common.getsrclib(lib, srclib_dir, build=build)) + print('Set up srclibs:') + pprint.pprint(srclibpaths) + + +if __name__ == "__main__": + main() diff --git a/hooks/pre-commit b/hooks/pre-commit index a197559d..07a6607d 100755 --- a/hooks/pre-commit +++ b/hooks/pre-commit @@ -8,7 +8,7 @@ exec 1>&2 files=`git diff-index --cached HEAD 2>&1 | sed 's/^:.* //' | uniq | cut -b100-500` if [ -z "$files" ]; then - PY_FILES="fdroid makebuildserver setup.py fdroidserver/*.py" + PY_FILES="fdroid makebuildserver setup.py fdroidserver/*.py examples/*.py" PY_TEST_FILES="tests/*.TestCase" SH_FILES="hooks/pre-commit" BASH_FILES="gradlew-fdroid jenkins-build-all jenkins-setup-build-environment jenkins-test completion/bash-completion buildserver/provision-*"