diff --git a/fdroid b/fdroid index 91dc9929..33a60251 100755 --- a/fdroid +++ b/fdroid @@ -22,7 +22,7 @@ import sys import logging import fdroidserver.common -from optparse import OptionError +from argparse import ArgumentError commands = { "build": "Build a package from source", @@ -124,7 +124,7 @@ def main(): else: logging.critical(str(e)) sys.exit(1) - except OptionError, e: + except ArgumentError as e: logging.critical(str(e)) sys.exit(1) except KeyboardInterrupt: diff --git a/fdroidserver/build.py b/fdroidserver/build.py index be934108..9bc8724c 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -29,7 +29,7 @@ import traceback import time import json from ConfigParser import ConfigParser -from optparse import OptionParser, OptionError +from argparse import ArgumentParser from distutils.version import LooseVersion import logging @@ -930,47 +930,48 @@ def trybuild(app, thisbuild, build_dir, output_dir, also_check_dir, srclib_dir, def parse_commandline(): - """Parse the command line. Returns options, args.""" + """Parse the command line. Returns options, parser.""" - parser = OptionParser(usage="Usage: %prog [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("-l", "--latest", action="store_true", default=False, - help="Build only the latest version of each package") - parser.add_option("-s", "--stop", action="store_true", default=False, - help="Make the build stop on exceptions") - parser.add_option("-t", "--test", action="store_true", default=False, - help="Test mode - put output in the tmp directory only, and always build, even if the output already exists.") - parser.add_option("--server", action="store_true", default=False, - help="Use build server") - parser.add_option("--resetserver", action="store_true", default=False, - help="Reset and create a brand new build server, even if the existing one appears to be ok.") - parser.add_option("--on-server", dest="onserver", action="store_true", default=False, - help="Specify that we're running on the build server") - parser.add_option("--skip-scan", dest="skipscan", action="store_true", default=False, - help="Skip scanning the source code for binaries and other problems") - parser.add_option("--no-tarball", dest="notarball", action="store_true", default=False, - help="Don't create a source tarball, useful when testing a build") - parser.add_option("--no-refresh", dest="refresh", action="store_false", default=True, - help="Don't refresh the repository, useful when testing a build with no internet connection") - parser.add_option("-f", "--force", action="store_true", default=False, - help="Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode.") - parser.add_option("-a", "--all", action="store_true", default=False, - help="Build all applications available") - parser.add_option("-w", "--wiki", default=False, action="store_true", - help="Update the wiki") - options, args = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") + parser.add_argument("appid", nargs='*', help="app-id with optional versioncode in the form APPID[:VERCODE]") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("-l", "--latest", action="store_true", default=False, + help="Build only the latest version of each package") + parser.add_argument("-s", "--stop", action="store_true", default=False, + help="Make the build stop on exceptions") + parser.add_argument("-t", "--test", action="store_true", default=False, + help="Test mode - put output in the tmp directory only, and always build, even if the output already exists.") + parser.add_argument("--server", action="store_true", default=False, + help="Use build server") + parser.add_argument("--resetserver", action="store_true", default=False, + help="Reset and create a brand new build server, even if the existing one appears to be ok.") + parser.add_argument("--on-server", dest="onserver", action="store_true", default=False, + help="Specify that we're running on the build server") + parser.add_argument("--skip-scan", dest="skipscan", action="store_true", default=False, + help="Skip scanning the source code for binaries and other problems") + parser.add_argument("--no-tarball", dest="notarball", action="store_true", default=False, + help="Don't create a source tarball, useful when testing a build") + parser.add_argument("--no-refresh", dest="refresh", action="store_false", default=True, + help="Don't refresh the repository, useful when testing a build with no internet connection") + parser.add_argument("-f", "--force", action="store_true", default=False, + help="Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode.") + parser.add_argument("-a", "--all", action="store_true", default=False, + help="Build all applications available") + parser.add_argument("-w", "--wiki", default=False, action="store_true", + help="Update the wiki") + options = parser.parse_args() # Force --stop with --on-server to get correct exit code if options.onserver: options.stop = True if options.force and not options.test: - raise OptionError("Force is only allowed in test mode", "force") + parser.error("option %s: Force is only allowed in test mode" % "force") - return options, args + return options, parser options = None config = None @@ -980,16 +981,16 @@ def main(): global options, config - options, args = parse_commandline() - if not args and not options.all: - raise OptionError("If you really want to build all the apps, use --all", "all") + options, parser = parse_commandline() + if not options.appid and not options.all: + parser.error("option %s: If you really want to build all the apps, use --all" % "all") config = common.read_config(options) if config['build_server_always']: options.server = True if options.resetserver and not options.server: - raise OptionError("Using --resetserver without --server makes no sense", "resetserver") + parser.error("option %s: Using --resetserver without --server makes no sense" % "resetserver") log_dir = 'logs' if not os.path.isdir(log_dir): @@ -1026,7 +1027,7 @@ def main(): # Read all app and srclib metadata allapps = metadata.read_metadata(xref=not options.onserver) - apps = common.read_app_args(args, allapps, True) + apps = common.read_app_args(options.appid, allapps, True) for appid, app in apps.items(): if (app['Disabled'] and not options.force) or not app['Repo Type'] or not app['builds']: del apps[appid] diff --git a/fdroidserver/checkupdates.py b/fdroidserver/checkupdates.py index 1962dded..0e68c97c 100644 --- a/fdroidserver/checkupdates.py +++ b/fdroidserver/checkupdates.py @@ -24,7 +24,7 @@ import re import urllib2 import time import subprocess -from optparse import OptionParser +from argparse import ArgumentParser import traceback import HTMLParser from distutils.version import LooseVersion @@ -515,27 +515,28 @@ def main(): global config, options # Parse command line... - parser = OptionParser(usage="Usage: %prog [options] [APPID [APPID ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("--auto", action="store_true", default=False, - help="Process auto-updates") - parser.add_option("--autoonly", action="store_true", default=False, - help="Only process apps with auto-updates") - parser.add_option("--commit", action="store_true", default=False, - help="Commit changes") - parser.add_option("--gplay", action="store_true", default=False, - help="Only print differences with the Play Store") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] [APPID [APPID ...]]") + parser.add_argument("appid", nargs='*', help="app-id to check for updates") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("--auto", action="store_true", default=False, + help="Process auto-updates") + parser.add_argument("--autoonly", action="store_true", default=False, + help="Only process apps with auto-updates") + parser.add_argument("--commit", action="store_true", default=False, + help="Commit changes") + parser.add_argument("--gplay", action="store_true", default=False, + help="Only print differences with the Play Store") + options = parser.parse_args() config = common.read_config(options) # Get all apps... allapps = metadata.read_metadata() - apps = common.read_app_args(args, allapps, False) + apps = common.read_app_args(options.appid, allapps, False) if options.gplay: for app in apps: diff --git a/fdroidserver/gpgsign.py b/fdroidserver/gpgsign.py index 0358e99e..8fca41cd 100644 --- a/fdroidserver/gpgsign.py +++ b/fdroidserver/gpgsign.py @@ -20,7 +20,7 @@ import sys import os import glob -from optparse import OptionParser +from argparse import ArgumentParser import logging import common @@ -35,12 +35,12 @@ def main(): global config, options # Parse command line... - parser = OptionParser(usage="Usage: %prog [options]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options]") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + options = parser.parse_args() config = common.read_config(options) diff --git a/fdroidserver/import.py b/fdroidserver/import.py index 31757dbe..9323f9bd 100644 --- a/fdroidserver/import.py +++ b/fdroidserver/import.py @@ -22,7 +22,7 @@ import sys import os import shutil import urllib -from optparse import OptionParser +from argparse import ArgumentParser from ConfigParser import ConfigParser import logging import common @@ -75,18 +75,18 @@ def main(): global config, options # Parse command line... - parser = OptionParser() - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("-u", "--url", default=None, - help="Project URL to import from.") - parser.add_option("-s", "--subdir", default=None, - help="Path to main android project subdirectory, if not in root.") - parser.add_option("--rev", default=None, - help="Allows a different revision (or git branch) to be specified for the initial import") - (options, args) = parser.parse_args() + parser = ArgumentParser() + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("-u", "--url", default=None, + help="Project URL to import from.") + parser.add_argument("-s", "--subdir", default=None, + help="Path to main android project subdirectory, if not in root.") + parser.add_argument("--rev", default=None, + help="Allows a different revision (or git branch) to be specified for the initial import") + options = parser.parse_args() config = common.read_config(options) diff --git a/fdroidserver/init.py b/fdroidserver/init.py index 0ed66d6b..cf75b911 100644 --- a/fdroidserver/init.py +++ b/fdroidserver/init.py @@ -25,7 +25,7 @@ import re import shutil import socket import sys -from optparse import OptionParser +from argparse import ArgumentParser import logging import common @@ -50,22 +50,22 @@ def main(): global options, config # Parse command line... - parser = OptionParser() - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("-d", "--distinguished-name", default=None, - help="X.509 'Distiguished Name' used when generating keys") - parser.add_option("--keystore", default=None, - help="Path to the keystore for the repo signing key") - parser.add_option("--repo-keyalias", default=None, - help="Alias of the repo signing key in the keystore") - parser.add_option("--android-home", default=None, - help="Path to the Android SDK (sometimes set in ANDROID_HOME)") - parser.add_option("--no-prompt", action="store_true", default=False, - help="Do not prompt for Android SDK path, just fail") - (options, args) = parser.parse_args() + parser = ArgumentParser() + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("-d", "--distinguished-name", default=None, + help="X.509 'Distiguished Name' used when generating keys") + parser.add_argument("--keystore", default=None, + help="Path to the keystore for the repo signing key") + parser.add_argument("--repo-keyalias", default=None, + help="Alias of the repo signing key in the keystore") + parser.add_argument("--android-home", default=None, + help="Path to the Android SDK (sometimes set in ANDROID_HOME)") + parser.add_argument("--no-prompt", action="store_true", default=False, + help="Do not prompt for Android SDK path, just fail") + options = parser.parse_args() # find root install prefix tmp = os.path.dirname(sys.argv[0]) diff --git a/fdroidserver/install.py b/fdroidserver/install.py index a5cb98ad..5339319f 100644 --- a/fdroidserver/install.py +++ b/fdroidserver/install.py @@ -21,7 +21,7 @@ import sys import os import glob -from optparse import OptionParser, OptionError +from argparse import ArgumentParser import logging import common @@ -49,17 +49,18 @@ def main(): global options, config # Parse command line... - parser = OptionParser(usage="Usage: %prog [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("-a", "--all", action="store_true", default=False, - help="Install all signed applications available") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") + parser.add_argument("appid", nargs='*', help="app-id with optional versioncode in the form APPID[:VERCODE]") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("-a", "--all", action="store_true", default=False, + help="Install all signed applications available") + options = parser.parse_args() - if not args and not options.all: - raise OptionError("If you really want to install all the signed apps, use --all", "all") + if not options.appid and not options.all: + parser.error("option %s: If you really want to install all the signed apps, use --all" % "all") config = common.read_config(options) @@ -68,9 +69,9 @@ def main(): logging.info("No signed output directory - nothing to do") sys.exit(0) - if args: + if options.appid: - vercodes = common.read_pkg_args(args, True) + vercodes = common.read_pkg_args(options.appid, True) apks = {appid: None for appid in vercodes} # Get the signed apk with the highest vercode diff --git a/fdroidserver/lint.py b/fdroidserver/lint.py index 123ed688..ab24201d 100644 --- a/fdroidserver/lint.py +++ b/fdroidserver/lint.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public Licen # along with this program. If not, see . -from optparse import OptionParser +from argparse import ArgumentParser import re import logging import common @@ -150,18 +150,19 @@ def main(): count['warn'] += 1 # Parse command line... - parser = OptionParser(usage="Usage: %prog [options] [APPID [APPID ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] [APPID [APPID ...]]") + parser.add_argument("appid", nargs='*', help="app-id in the form APPID") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + options = parser.parse_args() config = common.read_config(options) # Get all apps... allapps = metadata.read_metadata(xref=True) - apps = common.read_app_args(args, allapps, False) + apps = common.read_app_args(options.appid, allapps, False) filling_ucms = re.compile('^(Tags.*|RepoManifest.*)') diff --git a/fdroidserver/publish.py b/fdroidserver/publish.py index 42f02aa4..0ef5b60d 100644 --- a/fdroidserver/publish.py +++ b/fdroidserver/publish.py @@ -23,7 +23,7 @@ import os import shutil import md5 import glob -from optparse import OptionParser +from argparse import ArgumentParser import logging import common @@ -39,13 +39,14 @@ def main(): global config, options # Parse command line... - parser = OptionParser(usage="Usage: %prog [options] " - "[APPID[:VERCODE] [APPID[:VERCODE] ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] " + "[APPID[:VERCODE] [APPID[:VERCODE] ...]]") + parser.add_argument("appid", nargs='*', help="app-id with optional versioncode in the form APPID[:VERCODE]") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + options = parser.parse_args() config = common.read_config(options) @@ -86,7 +87,7 @@ def main(): # Nonetheless, to be sure, before publishing we check that there are no # collisions, and refuse to do any publishing if that's the case... allapps = metadata.read_metadata() - vercodes = common.read_pkg_args(args, True) + vercodes = common.read_pkg_args(options.appid, True) allaliases = [] for appid in allapps: m = md5.new() diff --git a/fdroidserver/readmeta.py b/fdroidserver/readmeta.py index 3dd6865a..a01a358f 100644 --- a/fdroidserver/readmeta.py +++ b/fdroidserver/readmeta.py @@ -17,18 +17,18 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from optparse import OptionParser +from argparse import ArgumentParser import common import metadata def main(): - parser = OptionParser(usage="Usage: %prog") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") + parser = ArgumentParser(usage="%(prog)s") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") parser.parse_args() common.read_config(None) diff --git a/fdroidserver/rewritemeta.py b/fdroidserver/rewritemeta.py index 5f6f190e..45497695 100644 --- a/fdroidserver/rewritemeta.py +++ b/fdroidserver/rewritemeta.py @@ -19,7 +19,7 @@ # along with this program. If not, see . import os -from optparse import OptionParser +from argparse import ArgumentParser import logging import common import metadata @@ -33,18 +33,19 @@ def main(): global config, options # Parse command line... - parser = OptionParser(usage="Usage: %prog [options] [APPID [APPID ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] [APPID [APPID ...]]") + parser.add_argument("appid", nargs='*', help="app-id in the form APPID") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + options = parser.parse_args() config = common.read_config(options) # Get all apps... allapps = metadata.read_metadata(xref=True) - apps = common.read_app_args(args, allapps, False) + apps = common.read_app_args(options.appid, allapps, False) for appid, app in apps.iteritems(): metadatapath = app['metadatapath'] diff --git a/fdroidserver/scanner.py b/fdroidserver/scanner.py index c8a81636..fc15569b 100644 --- a/fdroidserver/scanner.py +++ b/fdroidserver/scanner.py @@ -20,7 +20,7 @@ import os import re import traceback -from optparse import OptionParser +from argparse import ArgumentParser import logging import common @@ -249,18 +249,19 @@ def main(): global config, options # Parse command line... - parser = OptionParser(usage="Usage: %prog [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") + parser.add_argument("appid", nargs='*', help="app-id with optional versioncode in the form APPID[:VERCODE]") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + options = parser.parse_args() config = common.read_config(options) # Read all app and srclib metadata allapps = metadata.read_metadata() - apps = common.read_app_args(args, allapps, True) + apps = common.read_app_args(options.appid, allapps, True) probcount = 0 diff --git a/fdroidserver/server.py b/fdroidserver/server.py index 2acd2180..114e8a80 100644 --- a/fdroidserver/server.py +++ b/fdroidserver/server.py @@ -24,7 +24,7 @@ import os import paramiko import pwd import subprocess -from optparse import OptionParser +from argparse import ArgumentParser import logging import common @@ -195,28 +195,25 @@ def main(): global config, options # Parse command line... - parser = OptionParser() - parser.add_option("-i", "--identity-file", default=None, - help="Specify an identity file to provide to SSH for rsyncing") - parser.add_option("--local-copy-dir", default=None, - help="Specify a local folder to sync the repo to") - parser.add_option("--sync-from-local-copy-dir", action="store_true", default=False, - help="Before uploading to servers, sync from local copy dir") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("--no-checksum", action="store_true", default=False, - help="Don't use rsync checksums") - (options, args) = parser.parse_args() + parser = ArgumentParser() + parser.add_argument("command", help="command to execute, either 'init' or 'update'") + parser.add_argument("-i", "--identity-file", default=None, + help="Specify an identity file to provide to SSH for rsyncing") + parser.add_argument("--local-copy-dir", default=None, + help="Specify a local folder to sync the repo to") + parser.add_argument("--sync-from-local-copy-dir", action="store_true", default=False, + help="Before uploading to servers, sync from local copy dir") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("--no-checksum", action="store_true", default=False, + help="Don't use rsync checksums") + options = parser.parse_args() config = common.read_config(options) - if len(args) != 1: - logging.critical("Specify a single command") - sys.exit(1) - - if args[0] != 'init' and args[0] != 'update': + if options.command != 'init' and options.command != 'update': logging.critical("The only commands currently supported are 'init' and 'update'") sys.exit(1) @@ -288,7 +285,7 @@ def main(): if config['per_app_repos']: repo_sections += common.get_per_app_repos() - if args[0] == 'init': + if options.command == 'init': ssh = paramiko.SSHClient() ssh.load_system_host_keys() for serverwebroot in config.get('serverwebroot', []): @@ -310,7 +307,7 @@ def main(): sftp.mkdir(repo_path, mode=0755) sftp.close() ssh.close() - elif args[0] == 'update': + elif options.command == 'update': for repo_section in repo_sections: if local_copy_dir is not None: if config['sync_from_local_copy_dir'] and os.path.exists(repo_section): diff --git a/fdroidserver/signindex.py b/fdroidserver/signindex.py index 4c0c39ca..e3645278 100644 --- a/fdroidserver/signindex.py +++ b/fdroidserver/signindex.py @@ -19,7 +19,7 @@ import sys import os -from optparse import OptionParser +from argparse import ArgumentParser import logging import common @@ -34,12 +34,12 @@ def main(): global config, options # Parse command line... - parser = OptionParser(usage="Usage: %prog [options]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options]") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + options = parser.parse_args() config = common.read_config(options) diff --git a/fdroidserver/stats.py b/fdroidserver/stats.py index 5df00694..a4f7cf16 100644 --- a/fdroidserver/stats.py +++ b/fdroidserver/stats.py @@ -24,7 +24,7 @@ import time import traceback import glob import json -from optparse import OptionParser +from argparse import ArgumentParser import paramiko import socket import logging @@ -50,19 +50,19 @@ def main(): global options, config # Parse command line... - parser = OptionParser() - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("-d", "--download", action="store_true", default=False, - help="Download logs we don't have") - parser.add_option("--recalc", action="store_true", default=False, - help="Recalculate aggregate stats - use when changes " - "have been made that would invalidate old cached data.") - parser.add_option("--nologs", action="store_true", default=False, - help="Don't do anything logs-related") - (options, args) = parser.parse_args() + parser = ArgumentParser() + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("-d", "--download", action="store_true", default=False, + help="Download logs we don't have") + parser.add_argument("--recalc", action="store_true", default=False, + help="Recalculate aggregate stats - use when changes " + "have been made that would invalidate old cached data.") + parser.add_argument("--nologs", action="store_true", default=False, + help="Don't do anything logs-related") + options = parser.parse_args() config = common.read_config(options) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index d332222b..c3fba05b 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -29,7 +29,7 @@ import hashlib import pickle from datetime import datetime, timedelta from xml.dom.minidom import Document -from optparse import OptionParser +from argparse import ArgumentParser import time from pyasn1.error import PyAsn1Error from pyasn1.codec.der import decoder, encoder @@ -1048,35 +1048,35 @@ def main(): global config, options # Parse command line... - parser = OptionParser() - parser.add_option("--create-key", action="store_true", default=False, - help="Create a repo signing key in a keystore") - parser.add_option("-c", "--create-metadata", action="store_true", default=False, - help="Create skeleton metadata files that are missing") - parser.add_option("--delete-unknown", action="store_true", default=False, - help="Delete APKs without metadata from the repo") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - parser.add_option("-b", "--buildreport", action="store_true", default=False, - help="Report on build data status") - parser.add_option("-i", "--interactive", default=False, action="store_true", - help="Interactively ask about things that need updating.") - parser.add_option("-I", "--icons", action="store_true", default=False, - help="Resize all the icons exceeding the max pixel size and exit") - parser.add_option("-e", "--editor", default="/etc/alternatives/editor", - help="Specify editor to use in interactive mode. Default " + - "is /etc/alternatives/editor") - parser.add_option("-w", "--wiki", default=False, action="store_true", - help="Update the wiki") - parser.add_option("", "--pretty", action="store_true", default=False, - help="Produce human-readable index.xml") - parser.add_option("--clean", action="store_true", default=False, - help="Clean update - don't uses caches, reprocess all apks") - parser.add_option("--nosign", action="store_true", default=False, - help="When configured for signed indexes, create only unsigned indexes at this stage") - (options, args) = parser.parse_args() + parser = ArgumentParser() + parser.add_argument("--create-key", action="store_true", default=False, + help="Create a repo signing key in a keystore") + parser.add_argument("-c", "--create-metadata", action="store_true", default=False, + help="Create skeleton metadata files that are missing") + parser.add_argument("--delete-unknown", action="store_true", default=False, + help="Delete APKs without metadata from the repo") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + parser.add_argument("-b", "--buildreport", action="store_true", default=False, + help="Report on build data status") + parser.add_argument("-i", "--interactive", default=False, action="store_true", + help="Interactively ask about things that need updating.") + parser.add_argument("-I", "--icons", action="store_true", default=False, + help="Resize all the icons exceeding the max pixel size and exit") + parser.add_argument("-e", "--editor", default="/etc/alternatives/editor", + help="Specify editor to use in interactive mode. Default " + + "is /etc/alternatives/editor") + parser.add_argument("-w", "--wiki", default=False, action="store_true", + help="Update the wiki") + parser.add_argument("--pretty", action="store_true", default=False, + help="Produce human-readable index.xml") + parser.add_argument("--clean", action="store_true", default=False, + help="Clean update - don't uses caches, reprocess all apks") + parser.add_argument("--nosign", action="store_true", default=False, + help="When configured for signed indexes, create only unsigned indexes at this stage") + options = parser.parse_args() config = common.read_config(options) diff --git a/fdroidserver/verify.py b/fdroidserver/verify.py index b751c499..0e2f1962 100644 --- a/fdroidserver/verify.py +++ b/fdroidserver/verify.py @@ -20,7 +20,7 @@ import sys import os import glob -from optparse import OptionParser +from argparse import ArgumentParser import logging import common @@ -36,12 +36,13 @@ def main(): global options, config # Parse command line... - parser = OptionParser(usage="Usage: %prog [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") - parser.add_option("-q", "--quiet", action="store_true", default=False, - help="Restrict output to warnings and errors") - (options, args) = parser.parse_args() + parser = ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]") + parser.add_argument("appid", nargs='*', help="app-id with optional versioncode in the form APPID[:VERCODE]") + parser.add_argument("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") + parser.add_argument("-q", "--quiet", action="store_true", default=False, + help="Restrict output to warnings and errors") + options = parser.parse_args() config = common.read_config(options) @@ -58,7 +59,7 @@ def main(): verified = 0 notverified = 0 - vercodes = common.read_pkg_args(args, True) + vercodes = common.read_pkg_args(options.appid, True) for apkfile in sorted(glob.glob(os.path.join(unsigned_dir, '*.apk'))):