diff options
Diffstat (limited to 'tools/skin/generate.sh')
| -rwxr-xr-x | tools/skin/generate.sh | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tools/skin/generate.sh b/tools/skin/generate.sh new file mode 100755 index 0000000..78ee4cb --- /dev/null +++ b/tools/skin/generate.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +# Check requirements +wai=$(dirname $(readlink -f "$0")) # Current script directory +[ $(command -v "convert") ] || { echo -e "\e[31mThis script require ImageMagick installed.\e[0m"; exit 1; } +[ $(command -v "inkscape") ] || { echo -e "\e[31mThis script require Inkscape installed.\e[0m"; exit 1; } +[ -d "${wai}/../../assets/" ] || { echo -e "\e[31mUnable to found assets folder.\e[0m"; exit 1; } +boards_path="${wai}/../../assets/boards/" && mkdir -p ${boards_path} +pieces_path="${wai}/../../assets/pieces/" && mkdir -p ${pieces_path} + +generate () { + echo -e "\e[32mGenerating skin $(basename $1)\e[0m" + + # Configure black's pieces + bk=$1/bk.png + bq=$1/bq.png + br=$1/br.png + bb=$1/bb.png + bn=$1/bn.png + bp=$1/bp.png + bs=$1/bs.png + # Configure white's pieces + wk=$1/wk.png + wq=$1/wq.png + wr=$1/wr.png + wb=$1/wb.png + wn=$1/wn.png + wp=$1/wp.png + ws=$1/ws.png + + # First build the png files + for svg in $(find "$1/" -name "*.svg") + do + outFile=$(basename $svg|sed "s/\.svg$//g").png + inkscape -z -e $1/$outFile -w 200 -h 200 $svg > /dev/null + done + + if [ ! -e "$ws" ] # Generate Pieces Skin + then + convert \( $bk $wk +append \) \ + \( $bq $wq +append \) \ + \( $br $wr +append \) \ + \( $bb $wb +append \) \ + \( $bn $wn +append \) \ + \( $bp $wp +append \) \ + -background none -append "${pieces_path}/$(basename "$1").png" + else # Generate Squares Skin + convert \( $bs $ws +append \) \ + -background none -append "${boards_path}/$(basename "$1").png" + fi + + rm $1/*.png +} + + +if [ $# -eq 1 ] +then + # Generate assets for each skin + for skin in $({ ls -d ${wai}/boards/*; ls -d ${wai}/pieces/*; } | grep "$1") + do + generate $skin + done +else + # Generate assets for each skin + for skin in $({ ls -d ${wai}/boards/*; ls -d ${wai}/pieces/*; }) + do + generate $skin + done +fi |
