#!/bin/bash

if ! [ -x "$(command -v ./go-png2ico)" ]; then
    echo "./go-png2ico not found"
    echo "download the executable from https://github.com/J-Siu/go-png2ico"
    echo "and drop it in this folder"
    exit 1
fi

if ! [ -x "$(command -v ./oxipng)" ]; then
    echo "./oxipng executable not found"
    echo "download the executable from https://github.com/shssoichiro/oxipng"
    echo "and drop it in this folder"
    exit 1
fi

if ! [ -x "$(command -v inkscape)" ]; then
    echo "inkscape executable not found"
    exit 1
fi

icon_base_sizes=(16 64)
icon_sizes_keys=() # associative array to prevent duplicates
icon_sizes_keys[256]=1

for icon_base_size in ${icon_base_sizes[@]}; do
    # increment in 25% till 400%
    icon_size_increment=$((icon_base_size / 4))
    for ((i = 0; i <= 12; i++)); do
        icon_sizes_keys[$((icon_base_size + i * icon_size_increment))]=1
    done
done

# convert to normal array
icon_sizes=${!icon_sizes_keys[@]}

echo "using icon sizes:"
echo ${icon_sizes[@]}

src_vectors=("../../src_assets/common/assets/web/public/images/sunshine-locked.svg"
             "../../src_assets/common/assets/web/public/images/sunshine-pausing.svg"
             "../../src_assets/common/assets/web/public/images/sunshine-playing.svg"
             "../../sunshine.svg")

echo "using sources vectors:"
echo ${src_vectors[@]}

for src_vector in ${src_vectors[@]}; do
    file_name=`basename "$src_vector" .svg`
    png_files=()
    for icon_size in ${icon_sizes[@]}; do
        png_file="${file_name}${icon_size}.png"
        echo "converting ${png_file}"
        inkscape -w $icon_size -h $icon_size "$src_vector" --export-filename "${png_file}" &&
        ./oxipng -o max --strip safe --alpha "${png_file}" &&
        png_files+=("${png_file}")
    done

    echo "packing ${file_name}.ico"
    ./go-png2ico "${png_files[@]}" "${file_name}.ico"
done
