From: Hans-Christoph Steiner Date: Wed, 16 Apr 2014 00:47:03 +0000 (-0400) Subject: implement -q and -v for `fdroid server` X-Git-Tag: 0.2~112^2~4 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=d1cd817759633732c42d7b197bc681e6e088befa;p=fdroidserver.git implement -q and -v for `fdroid server` The --quiet and --verbose options that are standard with the fdroid tools were not implemented yet with the `server` command. --- diff --git a/fdroidserver/common.py b/fdroidserver/common.py index df7c4905..f9db5506 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -115,6 +115,13 @@ def read_config(opts, config_file='config.py'): if k in config: write_password_file(k) + # since this is used with rsync, where trailing slashes have meaning, + # ensure there is always a trailing slash + if 'serverwebroot' in config: + if config['serverwebroot'][-1] != '/': + config['serverwebroot'] += '/' + config['serverwebroot'] = config['serverwebroot'].replace('//', '/') + return config def write_password_file(pwtype, password=None): diff --git a/fdroidserver/server.py b/fdroidserver/server.py index b06866ab..69a72f57 100644 --- a/fdroidserver/server.py +++ b/fdroidserver/server.py @@ -29,19 +29,23 @@ options = None def update_serverwebroot(repo_section): + rsyncargs = ['rsync', '-u', '-r', '--delete'] + if options.verbose: + rsyncargs += ['--verbose'] + if options.quiet: + rsyncargs += ['--quiet'] 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, + # serverwebroot is guaranteed to have a trailing slash in common.py + if subprocess.call(rsyncargs + + ['--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: + if subprocess.call(rsyncargs + + [index, config['serverwebroot'] + repo_section]) != 0: sys.exit(1) - if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', - indexjar, - config['serverwebroot'] + '/' + repo_section]) != 0: + if subprocess.call(rsyncargs + + [indexjar, config['serverwebroot'] + repo_section]) != 0: sys.exit(1) def main(): @@ -71,8 +75,8 @@ def main(): standardwebroot = True if 'serverwebroot' in config: - serverwebroot = config['serverwebroot'].rstrip('/').replace('//', '/') - host, fdroiddir = serverwebroot.split(':') + serverwebroot = config['serverwebroot'] + host, fdroiddir = serverwebroot.rstrip('/').split(':') serverrepobase = os.path.basename(fdroiddir) if serverrepobase != 'fdroid' and standardwebroot: logging.error('serverwebroot does not end with "fdroid", ' @@ -93,9 +97,16 @@ def main(): if args[0] == 'init': if serverwebroot != None: + sshargs = ['ssh'] + if options.quiet: + sshargs += ['-q'] for repo_section in repo_sections: - if subprocess.call(['ssh', '-v', host, - 'mkdir -p', fdroiddir + '/' + repo_section]) != 0: + cmd = sshargs + [host, 'mkdir -p', fdroiddir + '/' + repo_section] + if options.verbose: + # ssh -v produces different output than rsync -v, so this + # simulates rsync -v + logging.info(' '.join(cmd)) + if subprocess.call(cmd) != 0: sys.exit(1) elif args[0] == 'update': for repo_section in repo_sections: