file tree kinda working :D

This commit is contained in:
2026-02-07 21:04:37 +11:00
parent 16afb5e2d0
commit 92990e7d4b
4 changed files with 175 additions and 109 deletions

72
util.py Normal file
View File

@@ -0,0 +1,72 @@
def get_icon_from_name_and_type(file_name: str, is_folder: bool):
# nerd font icons my beloved
if not is_folder:
match file_name:
case "Makefile":
return "\ue673"
case "Dockerfile" | "Containerfile":
return "\ue7b0"
case "requirements.txt":
return "\ue73c"
case "LICENSE":
return "\uf1f9"
case "Cargo.lock" | "Cargo.toml":
return "\ue7a8"
if "." in file_name:
extension = file_name[file_name.find(".")+1:]
match extension:
case 'c' | 'h':
return "\ue61e"
case 'cpp':
return "\ue61d"
case 'py':
return "\ue73c"
case 'js':
return "\ue781"
case 'json':
return "\ueb0f"
case 'gitignore' | 'gitmodules':
return "\ue702"
case 'html' | 'htm':
return "\ue736"
case 'css' | 'tcss':
return "\ue749"
case 'svg':
return "\ue698"
case 'ico':
return "\ue623"
case 'go':
return "\ue65e"
case 'rs':
return "\ue7a8"
case 'grnd' | 'sols':
return "\uf44f"
case 'md':
return "\ueb1d"
case 'fish':
return "\uee41"
case 'sh':
return "\ue760"
case 'bat':
return "\ue70f"
case 'png' | 'jpg' | 'jpeg' | 'avif':
return "\uf03e"
case 'lua':
return "\ue620"
case 'zip' | 'tar' | 'gz' | "7z":
return "\ue6aa"
case "rb":
return "\ue605"
case "kt":
return "\ue634"
case "java":
return "\ue738"
case _: # unrecognized file type
return "\uf15b"
else: # has no dot in the name
return "\uf15b"
else: # is a folder
return "\ue5ff"