Partially corrects for #116. We still don't detect if we're running as root (need to investigate if we need to run as root first). But this should at least hot-swap the log-file to the current working directory and place the logfile there.

This commit is contained in:
Anton Hvornum 2021-03-23 11:28:52 +01:00
parent 233886f9c5
commit c5f6c4b712
1 changed files with 10 additions and 1 deletions

View File

@ -96,7 +96,16 @@ 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:
os.makedirs(os.path.dirname(absolute_logfile))
except PermissionError:
# Fallback to creating the log file in the current folder
log(f"Not enough permission to place log file at {absolute_logfile}, creating it in {Path('./').absolute()} instead.", fg="red")
absolute_logfile = Path('./').absolute()/filename
absolute_logfile.makedirs(exist_ok=True)
storage['LOG_PATH'] = './'
Path(absolute_logfile).touch() # Overkill?
with open(absolute_logfile, 'a') as log_file: