#!/bin/sh set -e BASEDIR=$(dirname "$0") INPUT="$BASEDIR/shaders" OUTPUT="$BASEDIR/bsnes-shaders" available_shaders() { find "$INPUT" -type f -name '*.shader' | while read -r SHADERFILE; do # Grab the name of the shader SHADERNAME=$(basename "$SHADERFILE" .shader) # Grab the version of the shader TEMP=$(dirname "$SHADERFILE") SHADERVERSION=${TEMP##*/} # Grab the target of the shader. TEMP=${TEMP%/*} SHADERTARGET=${TEMP##*/} printf "%s\t%s\t%s\n" "$SHADERTARGET" "$SHADERVERSION" "$SHADERNAME" done } filter_shaders() { ( IFS=$(printf "\t") while read -r TARGET VERSION NAME; do # bsnes v082 only understands v1.0 shaders. if [ "$VERSION" != "v1.0" ] ; then continue fi printf "%s\t%s\t%s\n" "$TARGET" "$VERSION" "$NAME" done ) } mkdir -p "$OUTPUT" available_shaders | filter_shaders | ( IFS=$(printf "\t") while read -r TARGET VERSION NAME; do cp "$INPUT/$TARGET/$VERSION/$NAME.shader" "$OUTPUT/$NAME.$TARGET.shader" done ) echo "bsnes compatible shaders are now in $OUTPUT"