Files
OmniMTP/cmake/generate_icns.sh
2026-06-07 00:35:25 +02:00

35 lines
737 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
if [[ $# -ne 2 ]]; then
echo "Usage: $0 <source.png> <output.icns>" >&2
exit 1
fi
SRC="$1"
OUT="$2"
WORKDIR="$(mktemp -d)"
trap 'rm -rf "$WORKDIR"' EXIT
ICONSET="$WORKDIR/AppIcon.iconset"
mkdir -p "$ICONSET"
make_icon() {
local name="$1"
local size="$2"
sips -z "$size" "$size" "$SRC" --out "$ICONSET/$name" >/dev/null
}
make_icon icon_16x16.png 16
make_icon icon_16x16@2x.png 32
make_icon icon_32x32.png 32
make_icon icon_32x32@2x.png 64
make_icon icon_128x128.png 128
make_icon icon_128x128@2x.png 256
make_icon icon_256x256.png 256
make_icon icon_256x256@2x.png 512
make_icon icon_512x512.png 512
make_icon icon_512x512@2x.png 1024
iconutil -c icns "$ICONSET" -o "$OUT"