Corrected error handling for log creation.
This commit is contained in:
parent
09cab32749
commit
04804e6edc
|
|
@ -23,3 +23,4 @@ SAFETY_LOCK
|
|||
**/test.py
|
||||
**/archiso
|
||||
/guided.py
|
||||
/install.log
|
||||
|
|
|
|||
|
|
@ -103,30 +103,27 @@ def log(*args, **kwargs):
|
|||
kwargs = {'fg': 'white', **kwargs}
|
||||
string = stylize_output(string, **kwargs)
|
||||
|
||||
# If a logfile is defined in storage,
|
||||
# If a logfile is defined in storage,
|
||||
# we use that one to output everything
|
||||
if (filename := storage.get('LOG_FILE', None)):
|
||||
absolute_logfile = os.path.join(storage.get('LOG_PATH', './'), filename)
|
||||
if not os.path.isfile(absolute_logfile):
|
||||
try:
|
||||
Path(absolute_logfile).parents[0].mkdir(exist_ok=True, parents=True)
|
||||
with open(absolute_logfile, 'a') as log_file:
|
||||
log_file.write("")
|
||||
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?
|
||||
try:
|
||||
Path(absolute_logfile).parents[0].mkdir(exist_ok=True, parents=True)
|
||||
with open(absolute_logfile, 'a') as log_file:
|
||||
log_file.write("")
|
||||
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")
|
||||
|
||||
with open(absolute_logfile, 'a') as log_file:
|
||||
log_file.write(f"{orig_string}\n")
|
||||
|
||||
|
||||
# If we assigned a level, try to log it to systemd's journald.
|
||||
# Unless the level is higher than we've decided to output interactively.
|
||||
# (Remember, log files still get *ALL* the output despite level restrictions)
|
||||
|
|
|
|||
Loading…
Reference in New Issue