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