فهرست منبع

Error handling for the icns generator script

drHyperion451 2 سال پیش
والد
کامیت
3e7c0343bd
1فایلهای تغییر یافته به همراه72 افزوده شده و 14 حذف شده
  1. 72 14
      dist/icns_generator.sh

+ 72 - 14
dist/icns_generator.sh

@@ -1,14 +1,72 @@
-mkdir suyu.iconset
-convert  -background none -resize 16x16 suyu.svg suyu.iconset/icon_16x16.png;
-convert  -background none -resize 32x32 suyu.svg suyu.iconset/icon_16x16@2x.png;
-convert  -background none -resize 32x32 suyu.svg suyu.iconset/icon_32x32.png;
-convert  -background none -resize 64x64 suyu.svg suyu.iconset/icon_32x32@2x.png;
-convert  -background none -resize 128x128 suyu.svg suyu.iconset/icon_128x128.png;
-convert  -background none -resize 256x256 suyu.svg suyu.iconset/icon_256x256.png;
-convert  -background none -resize 256x256 suyu.svg suyu.iconset/icon_128x128@2x.png;
-convert  -background none -resize 512x512 suyu.svg suyu.iconset/icon_256x256@2x.png;
-convert  -background none -resize 512x512 suyu.svg suyu.iconset/icon_512x512.png;
-convert  -background none -resize 1024x1024 suyu.svg suyu.iconset/icon_512x512@2x.png;
-
-iconutil -c icns suyu.iconset
-rm -rf suyu.iconset
+#!/bin/bash
+# icns_generator.sh    GNU GPLv3 License
+# Run this script when a new logo is made and the svg file inside.
+# You should install Imagemagick to make the conversions: $brew install imagemagick
+
+# Change working dir to where this script is located.
+cd "${0%/*}"
+
+if [ -z $1 ]; then
+    echo "icns_generator.sh    GNU GPLv3 License"
+    echo "Run this script when a new logo is made and the svg file inside."
+    echo ""
+    echo "Syntax: ./icns_generator <input.svg>"
+    echo ""
+    echo "Don't forget to install imagemagick: "
+    echo "$ brew install imagemagick"
+    exit 0
+fi
+
+# Error Handling Stuff: 
+## Check command availability
+check_command() {
+    if ! command -v "$1" &> /dev/null; then
+        read -s -n 1 -p "Error: '$1' command not found. Please install $2."
+        exit 1
+    fi
+}
+
+## Convert image with error handling
+convert_image() {
+    convert -background none -resize "$2" "$1" "$3" || {
+        read -s -n 1 -p "Error: Conversion failed for $1"
+        exit 1
+    }
+}
+
+# Check required commands
+check_command "convert" "ImageMagick"
+check_command "iconutil" "macOS"
+
+# Create the iconset directory
+mkdir suyu.iconset || {
+    read -s -n 1 -p "Error: Unable to create suyu.iconset directory."
+    exit 1
+}
+
+# Convert images
+convert_image "$1" 16x16 suyu.iconset/icon_16x16.png
+convert_image "$1" 32x32 suyu.iconset/icon_16x16@2x.png
+convert_image "$1" 32x32 suyu.iconset/icon_32x32.png
+convert_image "$1" 64x64 suyu.iconset/icon_32x32@2x.png
+convert_image "$1" 128x128 suyu.iconset/icon_128x128.png
+convert_image "$1" 256x256 suyu.iconset/icon_256x256.png
+convert_image "$1" 256x256 suyu.iconset/icon_128x128@2x.png
+convert_image "$1" 512x512 suyu.iconset/icon_256x256@2x.png
+convert_image "$1" 512x512 suyu.iconset/icon_512x512.png
+convert_image "$1" 1024x1024 suyu.iconset/icon_512x512@2x.png
+
+# Create the ICNS file
+iconutil -c icns suyu.iconset || {
+    read -s -n 1 -p "Error: Failed to create ICNS file."
+    exit 1
+}
+
+# Remove the temporary iconset directory
+rm -rf suyu.iconset || {
+    read -s -n 1 -p "Error: Unable to remove suyu.iconset directory."
+    exit 1
+}
+
+echo -s -n 1 -p "Icon generation completed successfully."
+echo ""