23 lines
593 B
Bash
23 lines
593 B
Bash
|
|
#!/bin/sh -e
|
||
|
|
# macos-svg2icns.sh: convert an SVG to the macOS .icns format
|
||
|
|
if [ $# -ne 2 ]
|
||
|
|
then
|
||
|
|
echo >&2 "Usage: $0 INPUT.svg OUTPUT.icns"
|
||
|
|
exit 2
|
||
|
|
fi
|
||
|
|
|
||
|
|
svg=$1 icns=$2 tmpdir=$(mktemp -d)
|
||
|
|
trap 'rm -rf "$tmpdir"' EXIT
|
||
|
|
|
||
|
|
iconset="$tmpdir/$(basename "$icns" .icns).iconset"
|
||
|
|
mkdir -p "$iconset"
|
||
|
|
for size in 16 32 128 256 512
|
||
|
|
do
|
||
|
|
size2x=$((size * 2))
|
||
|
|
rsvg-convert --output="$iconset/icon_${size}x${size}.png" \
|
||
|
|
--width=$size --height=$size "$svg"
|
||
|
|
rsvg-convert --output="$iconset/icon_${size}x${size}@2x.png" \
|
||
|
|
--width=$size2x --height=$size2x "$svg"
|
||
|
|
done
|
||
|
|
iconutil -c icns -o "$icns" "$iconset"
|