--- /dev/null
+#!/bin/sh
+
+# input: a .shader file
+# parameters: in and out .bsp file
+
+BSPTOOL="${0%/*}"/bsptool.pl
+LF="
+"
+
+in=$1
+out=$2
+
+shaders=`"$BSPTOOL" "$in" -S`
+
+newshaders=`cat | grep '^[^ {}]'`
+
+set --
+
+list=
+for shader in $shaders; do
+ if [ -z "$list" ]; then
+ echo >&2 "Filling list..."
+ list=`echo "$newshaders" | sort -R`$LF
+ fi
+ case "$shader" in
+ noshader|NULL|textures/common/*)
+ ;;
+ *)
+ item=${list%%$LF*}
+ list=${list#*$LF}
+ set -- "$@" "-S$shader=$item"
+ ;;
+ esac
+done
+
+set -- "$BSPTOOL" "$in" "$@" -o"$out"
+"$@"