Skip to content

Instantly share code, notes, and snippets.

@miguelsolorio
Last active February 28, 2019 16:37
Show Gist options
  • Save miguelsolorio/4f89bdf5bc2aabebf25ce45ca7cf8d97 to your computer and use it in GitHub Desktop.
Save miguelsolorio/4f89bdf5bc2aabebf25ce45ca7cf8d97 to your computer and use it in GitHub Desktop.
Using ImageMagick (ico) and Iconutil (icns) to generate OS icons
input=("assets")
output=("dist")
platforms=("darwin" "win32")
versions=("stable" "insiders" "oss")
files=("bat" "bower" "c" "cpp" "csharp" "css" "default" "go" "html" "jade" "java" "javascript" "less" "markdown" "php" "powershell" "python" "react" "ruby" "sass" "shell" "sql" "typescript" "vue" "xml" "yaml" "json" "config")
# create output directory
for platform in "${platforms[@]}"
do
for version in "${versions[@]}"
do
mkdir -p -- "$output/$version/$platform/"
done
done
# convert icons
for platform in "${platforms[@]}"
do
for version in "${versions[@]}"
do
for file in "${files[@]}"
do
if [ $platform = "darwin" ]; then
iconutil -c icns $input/$version/$platform/$file.iconset
mv $input/$version/$platform/$file.icns $output/$version/$platform/$file.icns
elif [ $platform = "win32" ] && [ $file != "bat" ]; then
convert $input/$version/$platform/$file-icon_16x16.png $input/$version/$platform/$file-icon_20x20.png $input/$version/$platform/$file-icon_24x24.png $input/$version/$platform/$file-icon_32x32.png $input/$version/$platform/$file-icon_48x48.png $input/$version/$platform/$file-icon_64x64.png $input/$version/$platform/$file-icon_96x96.png $input/$version/$platform/$file-icon_128x128.png $input/$version/$platform/$file-icon_256x256.png $output/$version/$platform/$file.ico
fi
echo "✓ $output/$version/$platform/$file"
done
done
done
echo "🎉 Finished!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment