Source code for python_utils.check_for_preexist_dir_file

#!/usr/bin/env python3

import os
from datetime import datetime
from textwrap import dedent
from .check_var_valid_value import check_var_valid_value
from .filesys_cmds_vrfy import rm_vrfy, mv_vrfy, rsync_vrfy
from .print_msg import log_info


[docs]def check_for_preexist_dir_file(path, method): """Check for a preexisting directory or file and, if present, deal with it according to the specified method Args: path: path to directory method: could be any of [ 'delete', 'reuse', 'rename', 'quit' ] Returns: None """ try: check_var_valid_value(method, ["delete", "reuse", "rename", "quit"]) except ValueError: errmsg = dedent( f""" Invalid method for dealing with pre-existing directory specified method = {method} """ ) raise ValueError(errmsg) from None if os.path.exists(path): if method == "delete": rm_vrfy(" -rf ", path) elif method == "rename" or method == "reuse": now = datetime.now() d = now.strftime("_old_%Y%m%d_%H%M%S") new_path = path + d log_info( f""" Specified directory or file already exists: {path} Moving (renaming) preexisting directory or file to: {new_path}""" ) if method == "rename": mv_vrfy(path, new_path) else: rsync_vrfy(path, new_path) else: raise FileExistsError( dedent( f""" Specified directory or file already exists {path}""" ) )