File: fdroid_fetchsrclibs.py

package info (click to toggle)
fdroidserver 2.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,948 kB
  • sloc: python: 34,139; xml: 2,186; sh: 1,362; java: 293; makefile: 54; javascript: 23
file content (42 lines) | stat: -rw-r--r-- 1,493 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/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():
    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 = common.parse_args(parser)
    apps = common.read_app_args(options.appid, allow_version_codes=True, sort_by_time=True)
    common.read_config()
    srclib_dir = os.path.join('build', 'srclib')
    os.makedirs(srclib_dir, exist_ok=True)
    srclibpaths = []
    for appid, app in apps.items():
        vcs, _ignored = common.setup_vcs(app)
        for build in app.get('Builds', []):
            vcs.gotorevision(build.commit, refresh=False)
            if build.submodules:
                vcs.initsubmodules()
            else:
                vcs.deinitsubmodules()
            for lib in build.srclibs:
                srclibpaths.append(common.getsrclib(lib, srclib_dir, prepare=False, build=build))
    print('Set up srclibs:')
    pprint.pprint(srclibpaths)


if __name__ == "__main__":
    main()