X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-maps.pk3dir.git;a=blobdiff_plain;f=scripts%2Fshader-audit.sh;h=0d19a20229c26cfcd87a4115fa7772d13cd64082;hp=55d65aa348639bfb24f41ea5010a58537c552bce;hb=632e00047000a2dce6964f1dd08fab595b065323;hpb=1acd04fa446bb6f7c7653fb565260b527b8ffe25 diff --git a/scripts/shader-audit.sh b/scripts/shader-audit.sh index 55d65aa3..0d19a202 100644 --- a/scripts/shader-audit.sh +++ b/scripts/shader-audit.sh @@ -15,12 +15,14 @@ textures_used= use_texture() { # does texture exist? - if [ "$3" != "self" ]; then - if \ - [ -f "../$2.tga" ] || \ - [ -f "../$2.jpg" ] || \ - [ -f "../$2.png" ]; then - : + if \ + [ -f "../$2.tga" ] || \ + [ -f "../$2.jpg" ] || \ + [ -f "../$2.png" ]; then + : + else + if [ "$3" = "self" ]; then + return else echo "(EE) shader $1 uses non-existing texture $2" fi @@ -28,6 +30,67 @@ use_texture() textures_used="$textures_used$LF$2" # TODO verify shader -> texture name + case "$1" in + textures/*x/*-*) + pre=${1%%x/*}x + suf=${1#*x/} + # rule: in suffix part, change each - to / + suf="`echo "$suf" | sed 's,-,/,g'`" + case "$2" in + "$pre"/*/*) + ;; + *) + echo "(EE) texture $2 of shader $1 is out of place, recommended file name is $pre/$suf" + ;; + esac + ;; + textures/*x/*) + pre=${1%%x/*}x + suf=${1#*x/} + case "$2" in + "$pre"/*/*) + ;; + *) + echo "(EE) texture $2 of shader $1 is out of place, recommended file name is $pre/base/$suf" + ;; + esac + ;; + textures/map_*/*) + pre=${1%%/map_*} + suf=${1#*/map_} + case "$2" in + "$pre"/map_*) + ;; + *) + echo "(EE) texture $2 of shader $1 is out of place, recommended file name is $pre/map_$suf" + ;; + esac + ;; + textures/common/*) + case "$2" in + "$1") + ;; + textures/common/*/*) + ;; + *) + echo "(EE) texture $2 of shader $1 is out of place, recommended file name is $1 or textures/common/*/*" + ;; + esac + ;; + textures/decals/*) + case "$2" in + "$1") + # I _suppose_ this is fine, as tZork committed this pack + ;; + *) + echo "(EE) texture $2 of shader $1 is out of place, recommended file name is $1 or textures/common/*/*" + ;; + esac + ;; + *) + echo "(EE) no shader name pattern for $1" + ;; + esac } parsing_shader= @@ -113,5 +176,13 @@ textures_avail=`( cd ..; find textures/ -type f -not -name '*_norm.*' -not -name textures_used=`echo "${textures_used#$LF}" | sort -u` echo "$textures_used$LF$textures_used$LF$textures_avail" | sort | uniq -u | while IFS= read -r L; do - echo "(EE) texture $L is not referenced by any shader" + case "$L" in + textures/radiant/*) + ;; + textures/map_*/*) + ;; + *) + echo "(EE) texture $L is not referenced by any shader" + ;; + esac done