summaryrefslogtreecommitdiff
path: root/build_icon.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build_icon.sh')
-rwxr-xr-xbuild_icon.sh79
1 files changed, 79 insertions, 0 deletions
diff --git a/build_icon.sh b/build_icon.sh
new file mode 100755
index 0000000..d39e764
--- /dev/null
+++ b/build_icon.sh
@@ -0,0 +1,79 @@
+#!/usr/bin/env sh
+
+# build_icon.sh
+# Copyright 2024 Gabriel Bjørnager Jensen.
+#
+# Permission is hereby granted, free of charge, to
+# any person obtaining a copy of this software and
+# associated documentation files (the “Software”),
+# to deal in the Software without restriction, in-
+# cluding without limitation the rights to use,
+# copy, modify, merge, publish, distribute, subli-
+# cense, and/or sell copies of the Software, and
+# to permit persons to whom the Software is fur-
+# nished to do so, subject to the following con-
+# ditions:
+#
+# The above copyright notice and this permission
+# notice shall be included in all copies or sub-
+# stantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WAR-
+# RANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+# BUT NOT LIMITED TO THE WARRANTIES OF MER-
+# CHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+# AND NONINFRINGEMENT. IN NO EVENT SHALL THE AU-
+# THORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# Use in case an ICO image is wanted.
+#
+# On Arch, install `extra/icoutils` and `extra/
+# imagemagick`.
+
+failure() {
+ echo failure: ${1}
+ exit 2
+}
+
+if [ -z "${1}" ]
+then
+ failure "input name is not set"
+fi
+
+if [ -z "${2}" ]
+then
+ failure "output name is not set"
+fi
+
+renderDirectory="$(mktemp -d)"
+
+render_icon() {
+ name="${1}"
+ width="${2}"
+
+ output="${renderDirectory}/${name}_${width}x${width}.png"
+
+ echo rendering \"${output}\"
+ convert -background transparent "${name}.svg" -scale "${width}" "${output}"
+}
+
+input="${1}"
+
+render_icon "${input}" 16
+render_icon "${input}" 24
+render_icon "${input}" 32
+render_icon "${input}" 48
+render_icon "${input}" 64
+render_icon "${input}" 96
+render_icon "${input}" 128
+render_icon "${input}" 192
+render_icon "${input}" 256
+
+output="${2}.ico"
+
+echo combining into \"${output}\"
+icotool -co "${output}" "${renderDirectory}/"*".png"