From 748a5af04132c5dca6bada98d3280bc1a243b0c7 Mon Sep 17 00:00:00 2001 From: Igor Chubin Date: Thu, 9 May 2019 22:22:30 +0200 Subject: [PATCH] standalone mode: options handling --- lib/options.py | 15 ++++++++------- lib/standalone.py | 13 ++++++++++--- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/options.py b/lib/options.py index 83377ba..3bbfbe3 100644 --- a/lib/options.py +++ b/lib/options.py @@ -12,10 +12,16 @@ def parse_args(args): } query = "" + newargs = {} for key, val in args.items(): - if val == "" or val == []: + if val == "" or val == [] or val == ['']: query += key continue + if val == 'True': + val = True + if val == 'False': + val = False + newargs[key] = val options_meaning = { "c": dict(add_comments=False, unindent_code=False), @@ -28,11 +34,6 @@ def parse_args(args): if option in query: result.update(meaning) - for key, val in args.items(): - if val == 'True': - val = True - if val == 'False': - val = False - result[key] = val + result.update(newargs) return result diff --git a/lib/standalone.py b/lib/standalone.py index 13066ca..3553f0a 100644 --- a/lib/standalone.py +++ b/lib/standalone.py @@ -4,8 +4,11 @@ Standalone wrapper for the cheat.sh server. import sys import textwrap +import urlparse +import config import cheat_wrapper +import options def show_usage(): """ @@ -30,11 +33,15 @@ def parse_cmdline(args): show_usage() sys.exit(0) - request_options = {} - query = args[0] - query = query.lstrip("/") + 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