aboutsummaryrefslogtreecommitdiffstats
path: root/util/runners.py
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2022-11-20 20:33:13 +0000
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2022-11-20 20:33:13 +0000
commit6b1b61f98813a58286e099d92767e01c2d40bc18 (patch)
treea3613fba312e0f324bdbca28ec3d3d0b5e6f6e13 /util/runners.py
parent6a0e18aab79cefa8cd4917e9a6d121349f41eb3f (diff)
Redo deploy script
Diffstat (limited to 'util/runners.py')
-rw-r--r--util/runners.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/util/runners.py b/util/runners.py
new file mode 100644
index 0000000..9252d86
--- /dev/null
+++ b/util/runners.py
@@ -0,0 +1,29 @@
+import os
+import re
+from util.exceptions import StepFailedError
+
+HOME = os.getenv("HOME")
+
+
+def run_step(step):
+ step_type = step["=="]
+
+ if step_type == "run":
+ do_run(step["command"])
+ elif step_type == "link":
+ do_link(step["from"], step["to"])
+
+
+def do_run(command):
+ print(f"! {command}")
+ if not os.system(command) == 0:
+ raise StepFailedError("Non-zero return code")
+
+
+def do_link(source, destination):
+ destination = re.sub(r"^~/", HOME + "/", destination)
+ print(f"Linking {source} -> {destination}")
+ try:
+ os.link(source, destination)
+ except Exception as e:
+ raise StepFailedError("Link raised exeption: " + str(e)) from e