#!/usr/bin/env bash
# Иконки gntodo растрируются из единственного источника — frontend/public/logo.svg
# (знак «стек входящих» на холсте 64×64 со скруглёнными краями, приём gnexus-creds).
#
# frontend/public/icons/icon-192.png, icon-512.png purpose "any"
# frontend/public/icons/maskable-512.png purpose "maskable"
# extension/public/icons/icon-{16,32,48,128}.png иконки расширения
#
# Нужен ImageMagick с rsvg (проверка: magick -list format | grep SVG → RSVG).
# Фон #16161E впечатываем в PNG: прозрачность iOS рисует чёрным (углы холста
# скруглены, за ними — ничего), а maskable на Android обрезается по кругу.
# После правки логотипа: ./tools/rasterize_icons.sh
set -euo pipefail
cd "$(dirname "$0")/.."
LOGO=frontend/public/logo.svg
PAGE='#16161E' # фон страницы кита — тот же, что у холста логотипа
SAFE=80 # maskable: холст = 80% кадра (safe zone адаптивных иконок Android)
raster() { # raster <итоговый размер> <файл> [размер холста внутри кадра]
local size=$1 out=$2 canvas=${3:-$1}
magick -background "$PAGE" -density $((96 * canvas / 64)) "$LOGO" \
-resize "${canvas}x${canvas}" -gravity center -extent "${size}x${size}" \
-background "$PAGE" -alpha remove -alpha off -depth 8 -strip \
-define png:color-type=2 "$out" # truecolor без альфы — одинаково у всех размеров
}
raster 192 frontend/public/icons/icon-192.png
raster 512 frontend/public/icons/icon-512.png
raster 512 frontend/public/icons/maskable-512.png $((512 * SAFE / 100))
for s in 16 32 48 128; do raster "$s" "extension/public/icons/icon-$s.png"; done
command ls -l frontend/public/icons/*.png extension/public/icons/*.png