generate-icons.sh
1 #!/bin/bash 2 3 # Configuration 4 SOURCE="src/lib/assets/favicon.svg" 5 OUT_DIR="static" 6 7 # Ensure output directory exists (though static/ is standard) 8 mkdir -p "$OUT_DIR" 9 10 # Check if rsvg-convert is available 11 if ! command -v rsvg-convert &> /dev/null; then 12 echo "Error: rsvg-convert is not installed. Use 'brew install librsvg' to fix." 13 exit 1 14 fi 15 16 echo "Generating high-quality icons using rsvg-convert from $SOURCE..." 17 18 # 1. Standard PNGs (using icon-SIZE.png naming convention) 19 rsvg-convert -w 16 -h 16 "$SOURCE" > "$OUT_DIR/icon-16.png" 20 rsvg-convert -w 32 -h 32 "$SOURCE" > "$OUT_DIR/icon-32.png" 21 rsvg-convert -w 48 -h 48 "$SOURCE" > "$OUT_DIR/icon-48.png" 22 rsvg-convert -w 180 -h 180 "$SOURCE" > "$OUT_DIR/icon-180.png" 23 rsvg-convert -w 192 -h 192 "$SOURCE" > "$OUT_DIR/icon-192.png" 24 rsvg-convert -w 512 -h 512 "$SOURCE" > "$OUT_DIR/icon-512.png" 25 26 # 2. Multi-resolution .ico file (requires ImageMagick to combine PNGs) 27 echo " Generating favicon.ico..." 28 magick "$OUT_DIR/icon-16.png" "$OUT_DIR/icon-32.png" "$OUT_DIR/icon-48.png" "$OUT_DIR/favicon.ico" 29 30 # 3. Cleanup unused intermediate files (if any) 31 # rm "$OUT_DIR/icon-48.png" 32 33 echo "Done! Icons generated in $OUT_DIR."