diff --git a/netrun.py b/netrun.py index af8d268..a99ef3f 100644 --- a/netrun.py +++ b/netrun.py @@ -2,19 +2,39 @@ import requests import subprocess import sys + +def launch(command, data): + if isinstance(command, str): + command = [command] + elif isinstance(command, tuple): + command = list(command) + elif not isinstance(command, list): + raise ValueError("`command` must be `list`, `tuple`, or `str`") + + return subprocess.run(command, input=data) + + +def yn(question, options="yn"): + options = options.lower() + + options_display = f"[{'/'.join(options)}]" + full_question = f"{question} {options_display} " + + response = "WILL NEVER OCCUR IN OPTIONS" + while not response in options: + response = input(full_question).lower().strip()[0] + + return response + + url = sys.argv[1] content = requests.get(url).content -subprocess.run(["less"], input=content) - -while True: - response = ( - input("Do you want to run this script? [y/n] ").lower().strip()[0] - ) - if response == "y": - subprocess.run(["bash"], input=content) - break - elif response == "n": - print("Script not run.") - break +launch("less", content) + +response = yn("Do you want to run this script?") +if response == "y": + launch("bash", content) +else: + print("Script not run.")