From 3e7c0343bdb295e448b3a5d191fd4333a7411ac7 Mon Sep 17 00:00:00 2001 From: drHyperion451 Date: Tue, 19 Mar 2024 15:58:16 +0000 Subject: [PATCH] Error handling for the icns generator script --- dist/icns_generator.sh | 84 +++++++++++++++++++++++++++++++++++------- 1 file changed, 71 insertions(+), 13 deletions(-) diff --git a/dist/icns_generator.sh b/dist/icns_generator.sh index 8fe9f4ae4e..3723483754 100755 --- a/dist/icns_generator.sh +++ b/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; +#!/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 -iconutil -c icns suyu.iconset -rm -rf suyu.iconset +# 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 " + 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 ""