Move some code to functions

This commit is contained in:
Samuel Sloniker 2022-04-08 10:22:57 -07:00
parent 25491e0d6d
commit 3957b7a2dd

View File

@ -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)
launch("less", 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
response = yn("Do you want to run this script?")
if response == "y":
launch("bash", content)
else:
print("Script not run.")