From: Hans-Christoph Steiner Date: Wed, 16 Apr 2014 00:00:31 +0000 (-0400) Subject: reorg `fdroid server` to allow for multiple server types X-Git-Tag: 0.2~112^2~5 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=5ce3b61a2a7b83b3480ac248a65862623a1014ed;p=fdroidserver.git reorg `fdroid server` to allow for multiple server types Right now, ssh+rsync is the only supported server upload type. Things like cloud storage services are useful storage bins for fdroid repos since they are often not blocked while specific websites like Google Play are. --- diff --git a/fdroidserver/server.py b/fdroidserver/server.py index 6346b778..b06866ab 100644 --- a/fdroidserver/server.py +++ b/fdroidserver/server.py @@ -28,8 +28,23 @@ config = None options = None -def main(): +def update_serverwebroot(repo_section): + index = os.path.join(repo_section, 'index.xml') + indexjar = os.path.join(repo_section, 'index.jar') + if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', + '--exclude', index, '--exclude', indexjar, + repo_section, config['serverwebroot']]) != 0: + sys.exit(1) + if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', + index, + config['serverwebroot'] + '/' + repo_section]) != 0: + sys.exit(1) + if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', + indexjar, + config['serverwebroot'] + '/' + repo_section]) != 0: + sys.exit(1) +def main(): global config, options # Parse command line... @@ -50,6 +65,11 @@ def main(): logging.critical("The only commands currently supported are 'init' and 'update'") sys.exit(1) + if 'nonstandardwebroot' in config and config['nonstandardwebroot'] == True: + standardwebroot = False + else: + standardwebroot = True + if 'serverwebroot' in config: serverwebroot = config['serverwebroot'].rstrip('/').replace('//', '/') host, fdroiddir = serverwebroot.split(':') @@ -62,38 +82,25 @@ def main(): sys.exit(1) else: serverwebroot = None - if 'nonstandardwebroot' in config and config['nonstandardwebroot'] == True: - standardwebroot = False - else: - standardwebroot = True - repodirs = ['repo'] + if serverwebroot == None: + logging.warn('No serverwebroot set! Edit your config.py to set one.') + sys.exit(1) + + repo_sections = ['repo'] if config['archive_older'] != 0: - repodirs.append('archive') - - for repodir in repodirs: - if args[0] == 'init': - if serverwebroot == None: - logging.warn('No serverwebroot set! Edit your config.py to set it.') - elif subprocess.call(['ssh', '-v', host, - 'mkdir -p', fdroiddir + '/' + repodir]) != 0: - sys.exit(1) - elif args[0] == 'update': - if serverwebroot != None: - index = os.path.join(repodir, 'index.xml') - indexjar = os.path.join(repodir, 'index.jar') - if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', - '--exclude', index, '--exclude', indexjar, - repodir, config['serverwebroot']]) != 0: - sys.exit(1) - if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', - index, - config['serverwebroot'] + '/' + repodir]) != 0: - sys.exit(1) - if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', - indexjar, - config['serverwebroot'] + '/' + repodir]) != 0: + repo_sections.append('archive') + + if args[0] == 'init': + if serverwebroot != None: + for repo_section in repo_sections: + if subprocess.call(['ssh', '-v', host, + 'mkdir -p', fdroiddir + '/' + repo_section]) != 0: sys.exit(1) + elif args[0] == 'update': + for repo_section in repo_sections: + if serverwebroot != None: + update_serverwebroot(repo_section) sys.exit(0)