Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib/output.py
diff options
context:
space:
mode:
Diffstat (limited to 'archinstall/lib/output.py')
-rw-r--r--archinstall/lib/output.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/archinstall/lib/output.py b/archinstall/lib/output.py
index 0e0a295b..537fb695 100644
--- a/archinstall/lib/output.py
+++ b/archinstall/lib/output.py
@@ -96,7 +96,17 @@ def log(*args, **kwargs):
if (filename := storage.get('LOG_FILE', None)):
absolute_logfile = os.path.join(storage.get('LOG_PATH', './'), filename)
if not os.path.isfile(absolute_logfile):
- os.makedirs(os.path.dirname(absolute_logfile))
+ try:
+ Path(absolute_logfile).parents[0].mkdir(exist_ok=True, parents=True)
+ except PermissionError:
+ # Fallback to creating the log file in the current folder
+ err_string = f"Not enough permission to place log file at {absolute_logfile}, creating it in {Path('./').absolute()/filename} instead."
+ absolute_logfile = Path('./').absolute()/filename
+ absolute_logfile.parents[0].mkdir(exist_ok=True)
+ absolute_logfile = str(absolute_logfile)
+ storage['LOG_PATH'] = './'
+ log(err_string, fg="red")
+
Path(absolute_logfile).touch() # Overkill?
with open(absolute_logfile, 'a') as log_file: