Files
Momentum-Firmware/scripts/check_unused_icons.py
T
2024-11-05 04:42:55 +00:00

40 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
import pathlib
root = pathlib.Path(__file__).parent / ".."
icons = root / "assets/icons"
def count_icon_usages(name: str):
count = 0
name = name.encode()
# EXTREMELY wasteful, but who cares
for dir in ("applications", "furi", "lib", "targets"):
for filetype in (".c", ".cpp", ".h", ".fam"):
for file in (root / dir).glob(f"**/*{filetype}"):
try:
if name in file.read_bytes():
count += 1
except Exception:
print(f"Failed to read {file}")
return count
if __name__ == "__main__":
counts = {}
for category in icons.iterdir():
if not category.is_dir():
continue
for icon in category.iterdir():
if icon.is_dir() and (icon / "frame_rate").is_file():
name = "A_" + icon.name.replace("-", "_")
elif icon.is_file() and icon.suffix == ".png":
name = "I_" + "_".join(icon.name.split(".")[:-1]).replace("-", "_")
else:
continue
counts[name[2:]] = count_icon_usages(name)
for name, count in sorted(counts.items(), key=lambda x: x[1], reverse=True):
print(f"{name} used {count} times")