| from os import listdir, makedirs | |
| from os.path import isdir, isfile, join | |
| from re import search, IGNORECASE | |
| from shutil import copy | |
| def getFilesWith(path: str, reg: str): | |
| if not isdir(path): | |
| print(path, "is not a valid path") | |
| return None | |
| content = listdir(path) | |
| if len(content) == 0: | |
| print(path, "has no content") | |
| return None | |
| files = [f for f in content if isfile(join(path, f)) and search(reg, f, IGNORECASE)] | |
| if len(files) == 0: | |
| print(path, "contains no", reg) | |
| return None | |
| return files | |
| def createNewFolders(dirs: list): | |
| for d in dirs: | |
| if not isdir(d): | |
| makedirs(d) | |
| else: | |
| print("directory already exists", d) | |
| def createNewTemplates(objs, templatesDir, regTemplate, root): | |
| templatefiles = getFilesWith(templatesDir, regTemplate) | |
| for k in objs: | |
| regPhase = r"" | |
| match k: | |
| case "(i)SAT": | |
| regPhase = r"sat" | |
| case "iFAT": | |
| regPhase = r"fat" | |
| files = [f for f in templatefiles if search(regPhase, f, IGNORECASE)] | |
| if len(files) == 0: | |
| print("phase %s has no templates" % k) | |
| continue | |
| for o in objs[k]: | |
| targetLocation = join(root, o) | |
| tlFiles = getFilesWith(targetLocation, regPhase) | |
| if tlFiles: | |
| print(k, "files already exist in:", targetLocation) | |
| print("--------------------") | |
| [print("|-",f) for f in tlFiles] | |
| print("--------------------") | |
| continue | |
| for f in files: | |
| templatepath = join(templatesDir, f) | |
| targetpath = targetLocation | |
| if search(r"hut_\d{4}[a-zA-Z]{2}", f, IGNORECASE): | |
| targetpath = join(targetLocation, f[:4] + o + f[10:]) | |
| copy(templatepath, targetpath) | |