from argparse import ArgumentParser
from . import common
+from . import server
options = None
def make_binary_transparency_log(repodirs, btrepo='binary_transparency',
url=None,
- commit_title='fdroid update',
- git_remote=None):
+ commit_title='fdroid update'):
'''Log the indexes in a standalone git repo to serve as a "binary
transparency" log.
gitrepo.index.add([os.path.join(repodir, os.path.basename(f)), ])
gitrepo.index.commit(commit_title)
- if git_remote:
- logging.info('Pushing binary transparency log to ' + git_remote)
- origin = git.remote.Remote(gitrepo, 'origin')
- if origin in gitrepo.remotes:
- origin = gitrepo.remote('origin')
- if 'set_url' in dir(origin): # added in GitPython 2.x
- origin.set_url(git_remote)
- else:
- origin = gitrepo.create_remote('origin', git_remote)
- origin.fetch()
- origin.push('master')
def main():
if new_files:
os.chdir(tempdirbase)
- make_binary_transparency_log(repodirs, options.git_repo, options.url, 'fdroid btlog',
- git_remote=options.git_remote)
+ make_binary_transparency_log(repodirs, options.git_repo, options.url, 'fdroid btlog')
+ if options.git_remote:
+ server.push_binary_transparency(options.git_repo, options.git_remote)
shutil.rmtree(tempdirbase, ignore_errors=True)
if __name__ == "__main__":
logging.info(response['verbose_msg'] + " " + response['permalink'])
-def push_binary_transparency(binary_transparency_remote):
+def push_binary_transparency(git_repo_path, git_remote):
'''push the binary transparency git repo to the specifed remote'''
import git
- repo = git.Repo('binary_transparency_log')
- pushremote = None
- for remote in repo.remotes:
- if remote.url == binary_transparency_remote:
- pushremote = remote
- break
-
- if not pushremote:
- pushremote = repo.create_remote('fdroid_server_update', binary_transparency_remote)
- pushremote.push('master')
+ logging.info('Pushing binary transparency log to ' + git_remote)
+ gitrepo = git.Repo(git_repo_path)
+ origin = git.remote.Remote(gitrepo, 'origin')
+ if origin in gitrepo.remotes:
+ origin = gitrepo.remote('origin')
+ if 'set_url' in dir(origin): # added in GitPython 2.x
+ origin.set_url(git_remote)
+ else:
+ origin = gitrepo.create_remote('origin', git_remote)
+ origin.push('master')
def main():
and not config.get('serverwebroot') \
and not config.get('servergitmirrors') \
and not config.get('androidobservatory') \
+ and not config.get('binary_transparency_remote') \
and not config.get('virustotal_apikey') \
and local_copy_dir is None:
logging.warn('No option set! Edit your config.py to set at least one among:\n'
- + 'serverwebroot, servergitmirrors, local_copy_dir, awsbucket, virustotal_apikey or androidobservatory')
+ + 'serverwebroot, servergitmirrors, local_copy_dir, awsbucket, virustotal_apikey, androidobservatory, or binary_transparency_remote')
sys.exit(1)
repo_sections = ['repo']
binary_transparency_remote = config.get('binary_transparency_remote')
if binary_transparency_remote:
- push_binary_transparency(binary_transparency_remote)
+ push_binary_transparency('binary_transparency', binary_transparency_remote)
sys.exit(0)
git_remote = config.get('binary_transparency_remote')
if git_remote or os.path.isdir(os.path.join('binary_transparency', '.git')):
- btlog.make_binary_transparency_log(repodirs, git_remote=git_remote)
+ btlog.make_binary_transparency_log(repodirs)
if config['update_stats']:
# Update known apks info...
echo 'keypass = "r9aquRHYoI8+dYz6jKrLntQ5/NJNASFBacJh7Jv2BlI="' >> config.py
echo "binary_transparency_remote = '$REPOROOT/git_remote'" >> config.py
echo "accepted_formats = ['json', 'txt', 'yml']" >> config.py
-$fdroid update --verbose --pretty
+$fdroid update --verbose
+$fdroid server update --verbose
test -e repo/index.xml
test -e repo/index.jar
test -e repo/index-v1.jar