devicetype-library/scripts/align-filenames-models.py

47 lines
1.9 KiB
Python
Raw Normal View History

from os import walk, path, rename
import yaml
root_dir = f"{path.dirname(path.realpath(__file__))}/../device-types"
# root_dir = f"{path.dirname(path.realpath(__file__))}/../device-types/Cisco"
total = 0
for root, dirs, files in walk(root_dir):
for file in files:
if file.split(".")[1] == "yaml" or file.split(".")[1] == "yml":
fileChanged = False
if file.split(".")[0].count("_") > 0:
newname = file.replace("_", "-")
rename(f"{root}/{file}", f"{root}/{newname}")
data = []
with open(path.join(root, file), 'r') as stream:
try:
data = stream.readlines()
model = ""
partNumber = ""
for idx, line in enumerate(data):
if "model: " in line:
model = line.split(": ")[1].strip().replace(" ", "-")
if "part_number: " in line:
partNumber = line.split(": ")[1].strip()
fileName = file.split('.')[0].casefold()
regModel = model.replace("sfp+", "sfpp").replace("poe+", "poep").replace("!", "").replace("/", "-").replace("SFP+", "SFPP").replace("POE+", "POEP").replace("!", "").replace("/", "-").replace("PoE+", "PoEP")
modModel = regModel.casefold().replace("'", "").replace("+", "-plus").replace("*", "-")
if modModel not in fileName and partNumber.casefold() not in fileName:
print("------------")
print(regModel.replace("sfp+", "sfpp").replace("poe+", "poep").replace("!", "").replace("/", "-").replace("SFP+", "SFPP").replace("POE+", "POEP").replace("!", "").replace("/", "-").replace("PoE+", "PoEP").replace("+", "-plus").replace("*", "-"))
print(partNumber.casefold())
print(file.casefold())
print("------------")
total = total + 1
except yaml.YAMLError as exc:
print(exc)
stream.close()
print(f"Total Left: {total}")