fuckingtech/public/assets/glsl/lygia/prune.py
Elias Rhouzlane bf76c6b086 fix: code
2025-04-06 17:23:52 +02:00

61 lines
1.5 KiB
Python

import glob
import argparse
import os
languages = {
'GLSL': {
'ext': 'glsl',
'frameworks': ["OpenGL", "WebGL", "Vulkan"],
},
'HLSL': {
'ext': 'hlsl',
'frameworks': [ "DirectX" ],
},
'METAL': {
'ext': 'msl',
'frameworks': [ "Metal" ],
},
'WGSL': {
'ext': 'wgsl',
'frameworks': [ "WebGPU" ],
},
'CUDA': {
'ext': 'cuh',
'frameworks': [ "CUDA" ],
},
}
def getAll(extension: str):
list = []
for file in glob.glob("**/*." + extension, recursive = True):
list.append(file);
list.sort()
return list
if __name__ == "__main__":
argparser = argparse.ArgumentParser(description='Prune one or multiple shader languages.')
argparser.add_argument('--all', '-A', help='Prune all shader languages', action='store_true')
argparser.add_argument('--keep', '-k', type=str, help='Keep only the specified shader language')
argparser.add_argument('--remove', '-r', type=str, help='Remove the specified shader language')
args = argparser.parse_args()
prune = []
if args.all:
prune = list(languages.keys())
if args.keep:
keep_list = args.keep.upper().split(',')
print(keep_list)
for lang in keep_list:
if lang in prune:
prune.remove(lang)
if args.remove:
prune.append(args.remove)
print(f"Pruning: {prune}")
for lang in prune:
for file in getAll(languages[lang]['ext']):
os.remove(file)