Ctrl K
ComunidadGuías…

scripts/build-icons.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/bin/bash
# Rebuild compiled macOS icons and README previews from the Icon Composer source.
# Requires full Xcode with Icon Composer (Xcode 26 or later).

set -euo pipefail

root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$root"
developer="$(xcode-select -p)"
ictool="$developer/../Applications/Icon Composer.app/Contents/Executables/ictool"
if [[ ! -x "$ictool" ]]; then
  echo "Icon Composer is missing from the selected Xcode installation." >&2
  exit 1
fi

work="$(mktemp -d "${TMPDIR:-/tmp}/whisper-icons.XXXXXX")"
trap 'rm -rf "$work"' EXIT

xcrun actool assets/whisper.icon \
  --compile "$work" --app-icon whisper --include-all-app-icons \
  --target-device mac --minimum-deployment-target 12.0 --platform macosx \
  --output-partial-info-plist "$work/icon.plist" \
  --output-format human-readable-text --warnings --errors

for rendition in Default Dark; do
  "$ictool" assets/whisper.icon --export-image \
    --output-file "$work/$rendition.png" --platform macOS \
    --rendition "$rendition" --width 1024 --height 1024 --scale 1
  sips -Z 256 "$work/$rendition.png" --out "$work/$rendition-preview.png" >/dev/null
done

# actool's compatibility ICNS can omit sizes above 256 px. Export the complete
# classic icon family from the default rendition for older macOS versions.
mkdir "$work/whisper.iconset"
for size in 16 32 128 256 512; do
  sips -z "$size" "$size" "$work/Default.png" \
    --out "$work/whisper.iconset/icon_${size}x${size}.png" >/dev/null
  doubled=$((size * 2))
  sips -z "$doubled" "$doubled" "$work/Default.png" \
    --out "$work/whisper.iconset/icon_${size}x${size}@2x.png" >/dev/null
done
iconutil -c icns "$work/whisper.iconset" -o "$work/icon.icns"

cp "$work/Assets.car" assets/Assets.car
cp "$work/icon.icns" assets/icon.icns
cp "$work/Default-preview.png" docs/images/icon.png
cp "$work/Dark-preview.png" docs/images/icon-dark.png

echo "Updated macOS app icons and light/dark README previews."