SPB Git

spb/metrika Public

Stata-class statistics, GPU-accelerated by Apple Silicon. Native Swift — no Electron, no Python runtime, no compromises.

Swift 92.4% HTML 3.3% R 3% Shell 1.3%
1.2 KB · 42 lines shellscript
Raw Blame History
1#!/bin/bash2#3#  make_icns.sh — Metrika4#5#  Author:  Simon-Pierre Boucher6#  Contact: contact@spboucher.ai7#  Copyright © 2026 Simon-Pierre Boucher. All rights reserved.8#9#  Rasterizes Assets/AppIcon/metrika-icon.svg to all required sizes and10#  produces Assets/AppIcon/Metrika.icns via iconutil (CLAUDE.md §11).11#  Requires rsvg-convert (brew install librsvg); falls back to qlmanage.12#13set -euo pipefail1415ROOT="$(cd "$(dirname "$0")/.." && pwd)"16SVG="$ROOT/Assets/AppIcon/metrika-icon.svg"17ICONSET="$ROOT/Assets/AppIcon/Metrika.iconset"18ICNS="$ROOT/Assets/AppIcon/Metrika.icns"1920[[ -f "$SVG" ]] || { echo "❌ missing $SVG"; exit 1; }21rm -rf "$ICONSET" && mkdir -p "$ICONSET"2223rasterize() { # rasterize <px> <outfile>24  local px="$1" out="$2"25  if command -v rsvg-convert >/dev/null; then26    rsvg-convert -w "$px" -h "$px" "$SVG" -o "$out"27  else28    qlmanage -t -s "$px" -o "$(dirname "$out")" "$SVG" >/dev/null29    mv "$(dirname "$out")/$(basename "$SVG").png" "$out"30  fi31}3233# macOS iconset naming: size @1x and @2x pairs.34for size in 16 32 128 256 512; do35  rasterize "$size"        "$ICONSET/icon_${size}x${size}.png"36  rasterize "$((size*2))"  "$ICONSET/icon_${size}x${size}@2x.png"37done3839iconutil -c icns "$ICONSET" -o "$ICNS"40rm -rf "$ICONSET"41echo "✅ $ICNS"42