audio-oxide/icons.sh

60 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
SVG="$SCRIPT_DIR/au-o2-gui/assets/icon.svg"
ASSETS="$SCRIPT_DIR/au-o2-gui/assets"
if [ ! -f "$SVG" ]; then
echo "No icon.svg found at $SVG — skipping icon generation."
exit 0
fi
if ! command -v rsvg-convert &>/dev/null; then
echo "rsvg-convert not found. Install with: brew install librsvg"
exit 1
fi
case "$OSTYPE" in
darwin*)
ICONSET="$ASSETS/icon.iconset"
rm -rf "$ICONSET"
mkdir -p "$ICONSET"
rsvg-convert -w 16 -h 16 "$SVG" -o "$ICONSET/icon_16x16.png"
rsvg-convert -w 32 -h 32 "$SVG" -o "$ICONSET/icon_16x16@2x.png"
cp "$ICONSET/icon_16x16@2x.png" "$ICONSET/icon_32x32.png"
rsvg-convert -w 64 -h 64 "$SVG" -o "$ICONSET/icon_32x32@2x.png"
rsvg-convert -w 128 -h 128 "$SVG" -o "$ICONSET/icon_128x128.png"
rsvg-convert -w 256 -h 256 "$SVG" -o "$ICONSET/icon_128x128@2x.png"
cp "$ICONSET/icon_128x128@2x.png" "$ICONSET/icon_256x256.png"
rsvg-convert -w 512 -h 512 "$SVG" -o "$ICONSET/icon_256x256@2x.png"
cp "$ICONSET/icon_256x256@2x.png" "$ICONSET/icon_512x512.png"
rsvg-convert -w 1024 -h 1024 "$SVG" -o "$ICONSET/icon_512x512@2x.png"
iconutil -c icns "$ICONSET" -o "$ASSETS/icon.icns"
rm -rf "$ICONSET"
echo "Generated icon.icns"
;;
msys*|cygwin*|win*)
ICO_DIR="$ASSETS/icon.iconset"
rm -rf "$ICO_DIR"
mkdir -p "$ICO_DIR"
for size in 16 32 48 64 128 256; do
rsvg-convert -w "$size" -h "$size" "$SVG" -o "$ICO_DIR/${size}.png"
done
if command -v magick &>/dev/null; then
magick "$ICO_DIR/16.png" "$ICO_DIR/32.png" "$ICO_DIR/48.png" \
"$ICO_DIR/64.png" "$ICO_DIR/128.png" "$ICO_DIR/256.png" \
"$ASSETS/icon.ico"
rm -rf "$ICO_DIR"
echo "Generated icon.ico"
else
echo "PNGs rendered to $ICO_DIR — install ImageMagick to assemble .ico"
fi
;;
*)
echo "No icon conversion needed for $OSTYPE"
;;
esac