mirror of
https://github.com/chubin/cheat.sh.git
synced 2024-11-25 23:46:00 +03:00
66 lines
1.3 KiB
Python
66 lines
1.3 KiB
Python
"""
|
|
Standalone wrapper for the cheat.sh server.
|
|
"""
|
|
|
|
from __future__ import print_function
|
|
|
|
import sys
|
|
import textwrap
|
|
try:
|
|
import urlparse
|
|
except ModuleNotFoundError:
|
|
import urllib.parse as urlparse
|
|
|
|
import config
|
|
config.CONFIG["cache.type"] = "none"
|
|
|
|
import cheat_wrapper
|
|
import options
|
|
|
|
def show_usage():
|
|
"""
|
|
Show how to use the program in the standalone mode
|
|
"""
|
|
|
|
print(textwrap.dedent("""
|
|
Usage:
|
|
|
|
lib/standalone.py [OPTIONS] QUERY
|
|
|
|
For OPTIONS see :help
|
|
""")[1:-1])
|
|
|
|
def parse_cmdline(args):
|
|
"""
|
|
Parses command line arguments and returns
|
|
query and request_options
|
|
"""
|
|
|
|
if not args:
|
|
show_usage()
|
|
sys.exit(0)
|
|
|
|
query_string = " ".join(args)
|
|
parsed = urlparse.urlparse("https://srv:0/%s" % query_string)
|
|
request_options = options.parse_args(
|
|
urlparse.parse_qs(parsed.query, keep_blank_values=True))
|
|
|
|
query = parsed.path.lstrip("/")
|
|
if not query:
|
|
query = ":firstpage"
|
|
|
|
return query, request_options
|
|
|
|
|
|
def main(args):
|
|
"""
|
|
standalone wrapper for cheat_wrapper()
|
|
"""
|
|
|
|
query, request_options = parse_cmdline(args)
|
|
answer, _ = cheat_wrapper.cheat_wrapper(query, request_options=request_options)
|
|
sys.stdout.write(answer)
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv[1:])
|