Skip to content

Commit d12dd55

Browse files
authored
Merge pull request #20 from halloleo/no-ui-option
Option --no-ui to force printing without UI
2 parents 4540a7a + 16d490d commit d12dd55

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

statcode/statcode.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,12 @@ def _handle_input(inp):
241241
if inp in ('q', 'Q'):
242242
raise urwid.ExitMainLoop()
243243

244+
def output_without_ui(content):
245+
size = shutil.get_terminal_size()
246+
canvas = content.render(size)
247+
text = ("\n".join(text.decode("utf-8") for text in canvas.text)).rstrip()
248+
print(text)
249+
244250
def generate_content(status_code):
245251
try:
246252
code_descriptions, num, status_code = get_yaml_dictionary(status_code)
@@ -295,6 +301,7 @@ def print_help():
295301
print(''.join([BOLD, "-h, --help:", END, " prints this help"]))
296302
print(''.join([BOLD, "-a,-l, --all,--list statucode", END, " prints all codes in compact version"]))
297303
print(''.join([BOLD, "-a,-l, --all,--list headers", END, " prints all headers in compact version"]))
304+
print(''.join([BOLD, "-n, --no-ui", END, " force output without UI"]))
298305

299306
def print_all(status_code):
300307
if status_code == "statuscode":
@@ -325,16 +332,17 @@ def main():
325332
print_help()
326333
else:
327334
status_code = sys.argv[1]
335+
without_ui = len(sys.argv) > 2 and sys.argv[2].lower() in ("-n", "--no-ui")
328336
content = generate_content(status_code)
329337

330338
if content:
331-
try:
332-
App(content) # Opens interface
333-
except NameError:
334-
size = shutil.get_terminal_size()
335-
canvas = content.render(size)
336-
text = ("".join(text.decode("utf-8") for text in canvas.text)).rstrip()
337-
print(text)
339+
if without_ui or not is_not_dumb:
340+
output_without_ui(content)
341+
else:
342+
try:
343+
App(content) # Opens interface
344+
except NameError:
345+
output_without_ui(content)
338346
else:
339347
print(''.join([RED, "Sorry, statcode doesn't recognize: ", status_code, END]))
340348

0 commit comments

Comments
 (0)