#!/bin/sh # # Builds .icns file from a single .png file # set -e filename="${1%.*}" mkdir "$filename".iconset for i in 16 32 128 256 ; do n=$(( i * 2 )) sips -z $i $i "$1" --out "$filename".iconset/icon_${i}x${i}.png sips -z $n $n "$1" --out "$filename".iconset/icon_${i}x${i}@2x.png [[ $n -eq 512 ]] && \ sips -z $n $n "$1" --out "$filename".iconset/icon_${n}x${n}.png (( i++ )) done cp "$1" "$filename".iconset/icon_512x512@2x.png iconutil -c icns "$filename".iconset rm -r "$filename".iconset