From ca67ed392f7a6afadf98b9680fefcb4d59428ada Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Mon, 8 Jul 2019 16:56:03 -0600 Subject: [PATCH] Avoid clobbering existing files --- scripts/wk/log.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/scripts/wk/log.py b/scripts/wk/log.py index b10218fe..39330de7 100644 --- a/scripts/wk/log.py +++ b/scripts/wk/log.py @@ -11,10 +11,6 @@ import time from . import cfg -# STATIC VARIABLES -LOG = logging.getLogger(__name__) - - # Functions def enable_debug_mode(): """Configures logging for better debugging.""" @@ -30,10 +26,12 @@ def enable_debug_mode(): def update_log_path(dest_dir, dest_filename=''): """Copies current log file to new dir and updates the root logger.""" - dest = pathlib.Path(dest_dir) - dest = dest.expanduser() root_logger = logging.getLogger() cur_handler = root_logger.handlers[0] + dest = pathlib.Path(dest_dir) + dest = dest.expanduser() + source = pathlib.Path(cur_handler.baseFilename) + source = source.resolve() # Safety checks if len(root_logger.handlers) > 1: @@ -41,16 +39,14 @@ def update_log_path(dest_dir, dest_filename=''): if not isinstance(cur_handler, logging.FileHandler): raise NotImplementedError('update_log_path() only supports FileHandlers.') - # Set source - source = pathlib.Path(cur_handler.baseFilename) - source = source.resolve() - # Copy original log to new location if dest_filename: dest = dest.joinpath(dest_filename) else: dest = dest.joinpath(source.name) dest = dest.resolve() + if dest.exists(): + raise FileExistsError('Refusing to clobber: {}'.format(dest)) os.makedirs(dest.parent, exist_ok=True) shutil.copy(source, dest)