def main(argv=None): if argv is None: argv = sys.argv global packages command = "serve" host = "0.0.0.0" port = 8080 server = DEFAULT_SERVER redirect_to_fallback = True fallback_url = "http://pypi.python.org/simple" password_file = None update_dry_run = True update_directory = None update_stable_only = True try: opts, roots = getopt.getopt(argv[1:], "i:p:r:d:P:Uuxh", [ "interface=", "passwords=", "port=", "root=", "server=", "fallback-url=", "disable-fallback", "version", "help" ]) except getopt.GetoptError: err = sys.exc_info()[1] sys.exit("usage error: %s" % (err,)) for k, v in opts: if k in ("-p", "--port"): port = int(v) elif k in ("-i", "--interface"): host = v elif k in ("-r", "--root"): roots.append(v) elif k == "--disable-fallback": redirect_to_fallback = False elif k == "--fallback-url": fallback_url = v elif k == "--server": if v not in server_names: sys.exit("unknown server %r. choose one of %s" % ( v, ", ".join(server_names.keys()))) server = v elif k == "--version": sys.stdout.write("pypiserver %s\n" % __version__) sys.exit(0) elif k == "-U": command = "update" elif k == "-x": update_dry_run = False elif k == "-u": update_stable_only = False elif k == "-d": update_directory = v elif k in ("-P", "--passwords"): password_file = v elif k in ("-h", "--help"): usage() sys.exit(0) if len(roots) == 0: roots.append(os.path.expanduser("~/packages")) roots = [os.path.abspath(x) for x in roots] if command == "update": packages = frozenset(itertools.chain(*[listdir(r) for r in roots])) from pypiserver import manage manage.update(packages, update_directory, update_dry_run, stable_only=update_stable_only) return a = app( root=roots, redirect_to_fallback=redirect_to_fallback, password_file=password_file, fallback_url=fallback_url ) server = server or "auto" sys.stdout.write("This is pypiserver %s serving %r on http://%s:%s\n\n" % (__version__, ", ".join(roots), host, port)) sys.stdout.flush() run(app=a, host=host, port=port, server=server)
def main(argv=None): if argv is None: argv = sys.argv global packages command = "serve" host = "0.0.0.0" port = 8080 server = None redirect_to_fallback = True fallback_url = "http://pypi.python.org/simple" password_file = None update_dry_run = True update_directory = None update_stable_only = True try: opts, roots = getopt.getopt(argv[1:], "i:p:r:d:P:Uuxh", [ "interface=", "passwords=", "port=", "root=", "server=", "fallback-url=", "disable-fallback", "version", "help" ]) except getopt.GetoptError: err = sys.exc_info()[1] sys.exit("usage error: %s" % (err, )) for k, v in opts: if k in ("-p", "--port"): port = int(v) elif k in ("-i", "--interface"): host = v elif k in ("-r", "--root"): roots.append(v) elif k == "--disable-fallback": redirect_to_fallback = False elif k == "--fallback-url": fallback_url = v elif k == "--server": if v not in server_names: sys.exit("unknown server %r. choose one of %s" % (v, ", ".join(server_names.keys()))) server = v elif k == "--version": sys.stdout.write("pypiserver %s\n" % __version__) sys.exit(0) elif k == "-U": command = "update" elif k == "-x": update_dry_run = False elif k == "-u": update_stable_only = False elif k == "-d": update_directory = v elif k in ("-P", "--passwords"): password_file = v elif k in ("-h", "--help"): usage() sys.exit(0) if len(roots) == 0: roots.append(os.path.expanduser("~/packages")) elif len(roots) > 1: sys.exit("Error: more than one root directory specified: %r" % (roots, )) root = os.path.abspath(roots[0]) try: os.listdir(root) except Exception: err = sys.exc_info()[1] sys.exit("Error: while trying to list %r: %s" % (root, err)) if command == "update": packages = pkgset(root) from pypiserver import manage manage.update(packages, update_directory, update_dry_run, stable_only=update_stable_only) return a = app(root=root, redirect_to_fallback=redirect_to_fallback, password_file=password_file, fallback_url=fallback_url) server = server or "auto" sys.stdout.write("This is pypiserver %s serving %r on %s:%s\n\n" % (__version__, root, host, port)) run(app=a, host=host, port=port, server=server)
def main(argv=None): if argv is None: argv = sys.argv global packages command = "serve" host = "0.0.0.0" port = 8080 server = DEFAULT_SERVER redirect_to_fallback = True fallback_url = "http://pypi.python.org/simple" authenticated = ['update'] password_file = None overwrite = False verbosity = 1 log_file = None log_frmt = None log_req_frmt = None log_res_frmt = None log_err_frmt = None welcome_file = None cache_control = None update_dry_run = True update_directory = None update_stable_only = True try: opts, roots = getopt.getopt(argv[1:], "i:p:a:r:d:P:Uuvxoh", [ "interface=", "passwords=", "authenticate=", "port=", "root=", "server=", "fallback-url=", "disable-fallback", "overwrite", "log-file=", "log-frmt=", "log-req-frmt=", "log-res-frmt=", "log-err-frmt=", "welcome=", "cache-control=", "version", "help" ]) except getopt.GetoptError: err = sys.exc_info()[1] sys.exit("usage error: %s" % (err,)) for k, v in opts: if k in ("-p", "--port"): port = int(v) elif k in ("-a", "--authenticate"): authenticated = [a.lower() for a in re.split("[, ]+", v.strip(" ,"))] actions = ("list", "download", "update") for a in authenticated: if a not in actions: errmsg = "Action '%s' for option `%s` not one of %s!" % (a, k, actions) sys.exit(errmsg) elif k in ("-i", "--interface"): host = v elif k in ("-r", "--root"): roots.append(v) elif k == "--disable-fallback": redirect_to_fallback = False elif k == "--fallback-url": fallback_url = v elif k == "--server": if v not in server_names: sys.exit("unknown server %r. choose one of %s" % ( v, ", ".join(server_names.keys()))) server = v elif k == "--welcome": welcome_file = v elif k == "--version": sys.stdout.write("pypiserver %s\n" % __version__) sys.exit(0) elif k == "-U": command = "update" elif k == "-x": update_dry_run = False elif k == "-u": update_stable_only = False elif k == "-d": update_directory = v elif k in ("-P", "--passwords"): password_file = v elif k in ("-o", "--overwrite"): overwrite = True elif k == "--log-file": log_file = v elif k == "--log-frmt": log_frmt = v elif k == "--log-req-frmt": log_req_frmt = v elif k == "--log-res-frmt": log_res_frmt = v elif k == "--log-err-frmt": log_err_frmt = v elif k == "--cache-control": cache_control = v elif k == "-v": verbosity += 1 elif k in ("-h", "--help"): usage() sys.exit(0) if password_file and not (password_file and authenticated): sys.exit("Must give both password file (-P) and actions to authenticate (-a).") if len(roots) == 0: roots.append(os.path.expanduser("~/packages")) roots = [os.path.abspath(x) for x in roots] verbose_levels = [logging.WARNING, logging.INFO, logging.DEBUG, logging.NOTSET] log_level = list(zip(verbose_levels, range(verbosity)))[-1][0] init_logging(level=log_level, filename=log_file, format=log_frmt) if command == "update": packages = frozenset(itertools.chain(*[listdir(r) for r in roots])) from pypiserver import manage manage.update(packages, update_directory, update_dry_run, stable_only=update_stable_only) return a = app( root=roots, redirect_to_fallback=redirect_to_fallback, authenticated=authenticated, password_file=password_file, fallback_url=fallback_url, overwrite=overwrite, log_req_frmt=log_req_frmt, log_res_frmt=log_res_frmt, log_err_frmt=log_err_frmt, welcome_file=welcome_file, cache_control=cache_control, ) server = server or "auto" log.info("This is pypiserver %s serving %r on http://%s:%s\n\n", __version__, ", ".join(roots), host, port) run(app=a, host=host, port=port, server=server)
def main(argv=None): if argv is None: argv = sys.argv global packages command = "serve" host = "0.0.0.0" port = 8080 server = None redirect_to_fallback = True password_file = None update_dry_run = True update_directory = None update_stable_only = True try: opts, roots = getopt.getopt(argv[1:], "i:p:r:d:P:Uuxh", ["interface=", "passwords=", "port=", "root=", "server=", "disable-fallback", "version", "help"]) except getopt.GetoptError: err = sys.exc_info()[1] sys.exit("usage error: %s" % (err,)) for k, v in opts: if k in ("-p", "--port"): port = int(v) elif k in ("-i", "--interface"): host = v elif k in ("-r", "--root"): roots.append(v) elif k == "--disable-fallback": redirect_to_fallback = False elif k == "--server": if v not in server_names: sys.exit("unknown server %r. choose one of %s" % (v, ", ".join(server_names.keys()))) server = v elif k == "--version": sys.stdout.write("pypiserver %s\n" % __version__) sys.exit(0) elif k == "-U": command = "update" elif k == "-x": update_dry_run = False elif k == "-u": update_stable_only = False elif k == "-d": update_directory = v elif k in ("-P", "--passwords"): password_file = v elif k in ("-h", "--help"): usage() sys.exit(0) if len(roots) == 0: roots.append(os.path.expanduser("~/packages")) elif len(roots) > 1: sys.exit("Error: more than one root directory specified: %r" % (roots,)) root = os.path.abspath(roots[0]) try: os.listdir(root) except Exception: err = sys.exc_info()[1] sys.exit("Error: while trying to list %r: %s" % (root, err)) if command == "update": packages = pkgset(root) from pypiserver import manage manage.update(packages, update_directory, update_dry_run, stable_only=update_stable_only) return a = app(root=root, redirect_to_fallback=redirect_to_fallback, password_file=password_file) server = server or "auto" sys.stdout.write("This is pypiserver %s serving %r on %s:%s\n\n" % (__version__, root, host, port)) run(app=a, host=host, port=port, server=server)
def main(argv=None): if argv is None: argv = sys.argv global packages command = "serve" host = "0.0.0.0" port = 8080 server = DEFAULT_SERVER redirect_to_fallback = True fallback_url = "http://pypi.python.org/simple" password_file = None overwrite = False update_dry_run = True update_directory = None update_stable_only = True try: opts, roots = getopt.getopt(argv[1:], "i:p:r:d:P:Uuxoh", [ "interface=", "passwords=", "port=", "root=", "server=", "fallback-url=", "disable-fallback", "overwrite", "version", "help" ]) except getopt.GetoptError: err = sys.exc_info()[1] sys.exit("usage error: %s" % (err,)) for k, v in opts: if k in ("-p", "--port"): port = int(v) elif k in ("-i", "--interface"): host = v elif k in ("-r", "--root"): roots.append(v) elif k == "--disable-fallback": redirect_to_fallback = False elif k == "--fallback-url": fallback_url = v elif k == "--server": if v not in server_names: sys.exit("unknown server %r. choose one of %s" % ( v, ", ".join(server_names.keys()))) server = v elif k == "--version": sys.stdout.write("pypiserver %s\n" % __version__) sys.exit(0) elif k == "-U": command = "update" elif k == "-x": update_dry_run = False elif k == "-u": update_stable_only = False elif k == "-d": update_directory = v elif k in ("-P", "--passwords"): password_file = v elif k in ("-o", "--overwrite"): overwrite = True elif k in ("-h", "--help"): usage() sys.exit(0) if len(roots) == 0: roots.append(os.path.expanduser("~/packages")) roots = [os.path.abspath(x) for x in roots] if command == "update": packages = frozenset(itertools.chain(*[listdir(r) for r in roots])) from pypiserver import manage manage.update(packages, update_directory, update_dry_run, stable_only=update_stable_only) return a = app( root=roots, redirect_to_fallback=redirect_to_fallback, password_file=password_file, fallback_url=fallback_url, overwrite=overwrite, ) server = server or "auto" sys.stdout.write("This is pypiserver %s serving %r on http://%s:%s\n\n" % (__version__, ", ".join(roots), host, port)) sys.stdout.flush() run(app=a, host=host, port=port, server=server)