mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-09-15 07:22:29 +03:00
allow metadata to be embedded in source repos via .fdroid.yml
This allows a source repo to include a complete metadata file so that it can be built directly in place using `fdroid build`. If that app is then included in fdroiddata, it will first load the source repo type and URL from fdroiddata, then read .fdroid.yml if it exists, then include the rest of the metadata as specified in fdroiddata, so that fdroiddata has precedence over the metadata in the source code. This lets `fdroid build` apps without having a whole fdroiddata setup, but instead just directly in place in the source code. This also lets devs optionallu maintain the fdroid metadata as part of their app, rather than in fdroiddata without loosing any control. This should make it easier to spread around the maintenance load.
This commit is contained in:
parent
b4a39ee272
commit
a4e4310803
8 changed files with 121 additions and 16 deletions
|
@ -486,6 +486,27 @@ def getcvname(app):
|
|||
return '%s (%s)' % (app.CurrentVersion, app.CurrentVersionCode)
|
||||
|
||||
|
||||
def get_build_dir(app):
|
||||
'''get the dir that this app will be built in'''
|
||||
|
||||
if app.RepoType == 'srclib':
|
||||
return os.path.join('build', 'srclib', app.Repo)
|
||||
|
||||
return os.path.join('build', app.id)
|
||||
|
||||
|
||||
def setup_vcs(app):
|
||||
'''checkout code from VCS and return instance of vcs and the build dir'''
|
||||
build_dir = get_build_dir(app)
|
||||
|
||||
# Set up vcs interface and make sure we have the latest code...
|
||||
logging.debug("Getting {0} vcs interface for {1}"
|
||||
.format(app.RepoType, app.Repo))
|
||||
vcs = getvcs(app.RepoType, app.Repo, build_dir)
|
||||
|
||||
return vcs, build_dir
|
||||
|
||||
|
||||
def getvcs(vcstype, remote, local):
|
||||
if vcstype == 'git':
|
||||
return vcs_git(remote, local)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue