Add backend support for settings

This commit is contained in:
Sami Abuzakuk
2025-10-12 10:22:07 +02:00
parent 6afc50eb81
commit 288a40952e
3 changed files with 110 additions and 3 deletions

View File

@@ -34,14 +34,42 @@ def run_scripts(script_ids: list[int] | None = None):
def dump_script_to_file(script, filename):
with open(filename, "w") as file:
file.write("from dotenv import load_dotenv\nload_dotenv()\n")
file.write(script.script_content)
def execute_script(filename) -> subprocess.CompletedProcess:
result = subprocess.run(["python", filename], capture_output=True, text=True)
result = subprocess.run(
["exec_folder/venv/bin/python", filename], capture_output=True, text=True
)
return result
def update_requirements(settings):
if settings is None:
raise ValueError("No default settings found")
# create requirements.txt
with open("exec_folder/requirements.txt", "w") as file:
file.write("dotenv\n")
file.write(settings.requirements)
# install requirements
subprocess.run(
["exec_folder/venv/bin/pip", "install", "-r", "exec_folder/requirements.txt"],
check=True,
)
def update_environment(settings):
if settings is None:
raise ValueError("No default settings found")
# create .env file
with open("exec_folder/.env", "w") as file:
file.write(settings.environment)
def delete_script(filename):
try:
os.remove(filename)