#! /bin/bash if ! ./avgcolor.py >& /dev/null; then echo "${0##*/}: ERROR: could not run avgcolor.py (`pwd`/avgcolor.py)" 1>&2 exit 1 fi if [ -z "$1" ]; then echo "Usage: ${0##*/} search-dir [...]" 1>&2 exit 1 fi for file in "$@"; do if [ ! -d "$file" ]; then echo "${0##*/}: ERROR: $file does not exist or is not a directory" 1>&2 exit 1 fi done cat nodes.txt \ | sed \ -e 's/[ \t]*#.*//' \ -e '/^[ \t]*$/d' \ | while read -r node tile; do filename="$(find -L "$@" -type f -name "$tile" | head -1)" if [ -z "$filename" ]; then echo "WARNING: could not find file '$tile' for node '$node'" 1>&2 continue fi avgcolor="$(./avgcolor.py "$filename")" if [ -z "$avgcolor" ]; then if expr "$node" : "^xpanes:bar_[0-9]\+$" > /dev/null; then # Hack to generate xpanes:bar_* anyway echo "$node 0 0 0" else echo "WARNING: failed to compute average color for node '$node' (tile: $tile)" 1>&2 fi else echo "$node $avgcolor" fi done \ | sed -r \ -e 's/^(default:water_[a-z]+) [0-9 ]+$/\1 49 82 132 128 224/' \ -e 's/^(default:river_water_[a-z]+) [0-9 ]+$/\1 59 99 159 192 224/' \ -e 's/^(default:lava_[a-z]+) [0-9 ]+$/\1 255 100 0/' \ -e 's/^(default:[a-z_]*glass[_a-z0-9]*) ([0-9 ]+)$/\1 \2 64 16/' \ -e 's/^(xpanes:bar_[0-9]+) 0 0 0$/\1 64 64 64/' \ -e 's/^(xpanes:pane_[0-9]*) ([0-9 ]+)$/\1 192 192 227 64 16/' \ > colors.txt