| 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) |
|
|