blob: 63a3f3df8776b6e96505effb25156d9126b7f4a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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 OSError as e:
if e.errno == 17:
print(f"File {destination} already exists")
else:
raise StepFailedError("Link raised exeption: " + str(e)) from e
except Exception as e:
raise StepFailedError("Link raised exeption: " + str(e)) from e
|