72 lines
2.6 KiB
Python
72 lines
2.6 KiB
Python
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" |