51 lines
1.3 KiB
Bash
Executable File
51 lines
1.3 KiB
Bash
Executable File
#! /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
|
|
|