#!/bin/bash
# make-icon-pack.sh: the iOS, Android and web icon sizes from one square PNG, with sips (built into macOS)
# usage: ./make-icon-pack.sh icon.png [out-folder]
set -euo pipefail
src="${1:?usage: make-icon-pack.sh icon.png [out-folder]}"
out="${2:-icons}"

resize() { mkdir -p "$(dirname "$3")"; sips -z "$1" "$1" "$2" --out "$3" >/dev/null; }

resize 1024 "$src" "$out/ios/AppIcon.appiconset/AppIcon.png"
cat > "$out/ios/AppIcon.appiconset/Contents.json" <<'JSON'
{
  "images": [{ "filename": "AppIcon.png", "idiom": "universal", "platform": "ios", "size": "1024x1024" }],
  "info": { "author": "xcode", "version": 1 }
}
JSON
for d in mdpi:48 hdpi:72 xhdpi:96 xxhdpi:144 xxxhdpi:192; do
  resize "${d#*:}" "$src" "$out/android/res/mipmap-${d%%:*}/ic_launcher.png"
done
resize 512 "$src" "$out/android/ic_launcher-playstore.png"
resize 180 "$src" "$out/web/apple-touch-icon.png"
resize 192 "$src" "$out/web/icon-192.png"
resize 512 "$src" "$out/web/icon-512.png"
sips -z 48 48 -s format ico "$src" --out "$out/web/favicon.ico" >/dev/null
