Use new betterhelp.
This commit is contained in:
parent
a308c10767
commit
31de5d0dfa
1 changed files with 65 additions and 42 deletions
|
@ -483,39 +483,6 @@ def zip_directory(path):
|
||||||
|
|
||||||
# COMMAND LINE #####################################################################################
|
# COMMAND LINE #####################################################################################
|
||||||
|
|
||||||
DOCSTRING = '''
|
|
||||||
simpleserver
|
|
||||||
============
|
|
||||||
|
|
||||||
Run a simple file server from your computer.
|
|
||||||
|
|
||||||
> simpleserver port <flags>
|
|
||||||
|
|
||||||
port:
|
|
||||||
Port number, an integer.
|
|
||||||
|
|
||||||
flags:
|
|
||||||
--password X:
|
|
||||||
A password string. The user will be prompted to enter it before proceeding
|
|
||||||
to any URL. A token is stored in a cookie unless authorize_by_ip is used.
|
|
||||||
|
|
||||||
--authorize_by_ip:
|
|
||||||
After the user enters the password, their entire IP becomes authorized for
|
|
||||||
all future requests. This reduces security, because a single IP can be home
|
|
||||||
to many different people, but increases convenience, because the user can
|
|
||||||
use download managers / scripts where adding auth is not convenient.
|
|
||||||
|
|
||||||
--enable_zip:
|
|
||||||
Add a 'zip' link to every directory and allow the user to download the
|
|
||||||
entire directory as a zip file.
|
|
||||||
|
|
||||||
--overall_ratelimit X:
|
|
||||||
An integer number of bytes, the maximum bytes/sec of the server overall.
|
|
||||||
|
|
||||||
--individual_ratelimit X:
|
|
||||||
An integer number of bytes, the maximum bytes/sec for any single request.
|
|
||||||
'''
|
|
||||||
|
|
||||||
def simpleserver_argparse(args):
|
def simpleserver_argparse(args):
|
||||||
server = SimpleServer(
|
server = SimpleServer(
|
||||||
port=args.port,
|
port=args.port,
|
||||||
|
@ -528,17 +495,73 @@ def simpleserver_argparse(args):
|
||||||
server.start()
|
server.start()
|
||||||
|
|
||||||
def main(argv):
|
def main(argv):
|
||||||
parser = argparse.ArgumentParser(description=DOCSTRING)
|
parser = argparse.ArgumentParser(
|
||||||
|
description=
|
||||||
parser.add_argument('port', nargs='?', type=int, default=40000)
|
'''
|
||||||
parser.add_argument('--password', dest='password', default=None)
|
Run a simple http file server from your computer.
|
||||||
parser.add_argument('--authorize_by_ip', '--authorize-by-ip', dest='authorize_by_ip', action='store_true')
|
''',
|
||||||
parser.add_argument('--enable_zip', '--enable-zip', dest='enable_zip', action='store_true')
|
)
|
||||||
parser.add_argument('--overall_ratelimit', '--overall-ratelimit', type=bytestring.parsebytes, default=20*bytestring.MIBIBYTE)
|
parser.examples = [
|
||||||
parser.add_argument('--individual_ratelimit', '--individual-ratelimit', type=bytestring.parsebytes, default=10*bytestring.MIBIBYTE)
|
'4242 --password letmeinplease --authorize-by-ip --enable-zip',
|
||||||
|
'--individual-ratelimit 2m --overall-ratelimit 10m',
|
||||||
|
]
|
||||||
|
parser.add_argument(
|
||||||
|
'port',
|
||||||
|
nargs='?',
|
||||||
|
type=int,
|
||||||
|
default=40000,
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--password',
|
||||||
|
dest='password',
|
||||||
|
type=str,
|
||||||
|
default=None,
|
||||||
|
help='''
|
||||||
|
A password string. The user will be prompted to enter it before proceeding
|
||||||
|
to any URL. A token is stored in a cookie unless authorize_by_ip is used.
|
||||||
|
''',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--authorize_by_ip',
|
||||||
|
'--authorize-by-ip',
|
||||||
|
action='store_true',
|
||||||
|
help='''
|
||||||
|
After the user enters the password, their entire IP becomes authorized for
|
||||||
|
all future requests. This reduces security, because a single IP can be home
|
||||||
|
to many different people, but increases convenience, because the user can
|
||||||
|
use download managers / scripts where adding auth is not convenient.
|
||||||
|
''',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--enable_zip',
|
||||||
|
'--enable-zip',
|
||||||
|
action='store_true',
|
||||||
|
help='''
|
||||||
|
Add a 'zip' link to every directory and allow the user to download the
|
||||||
|
entire directory as a zip file.
|
||||||
|
''',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--overall_ratelimit',
|
||||||
|
'--overall-ratelimit',
|
||||||
|
type=bytestring.parsebytes,
|
||||||
|
default=20*bytestring.MIBIBYTE,
|
||||||
|
help='''
|
||||||
|
The maximum bytes/sec of the server overall.
|
||||||
|
''',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--individual_ratelimit',
|
||||||
|
'--individual-ratelimit',
|
||||||
|
type=bytestring.parsebytes,
|
||||||
|
default=10*bytestring.MIBIBYTE,
|
||||||
|
help='''
|
||||||
|
The maximum bytes/sec for any single request.
|
||||||
|
''',
|
||||||
|
)
|
||||||
parser.set_defaults(func=simpleserver_argparse)
|
parser.set_defaults(func=simpleserver_argparse)
|
||||||
|
|
||||||
return betterhelp.single_main(argv, parser, DOCSTRING)
|
return betterhelp.go(parser, argv)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
raise SystemExit(main(sys.argv[1:]))
|
raise SystemExit(main(sys.argv[1:]))
|
||||||
|
|
Loading…
Reference in a new issue