#!/bin/sh # genTile.sh: Create a framed tile in the specified color # # Usage: genTile.sh [-s SIZE] COLOR usageMessage="Usage: ${0} [-s SIZE] COLOR" error() { printf '%s error: %s\n' "$0" "$*" >&2 } errorAndUsage() { printf '%s error: %s\n%s\n' "$0" "$*" "$usageMessage" >&2 } clean() { [ -f "$tmpFile" ] && rm "$tmpFile" } size=64 borderSize=2 # Process options while getopts ':s:' opt; do case $opt in 's' ) size="$OPTARG" ;; '?' ) printf '%s\n' "$usageMessage" >&2 exit 1 esac done shift $((OPTIND - 1)) borderlessSize=$(( size - (borderSize * 2) )) color="$1" tmpFile="/tmp/${color}Temp.png" outputFile="${color}.png" [ -z "$color" ] && errorAndUsage "No color specified." && exit 1 magick -size "${borderlessSize}x${borderlessSize}" "canvas:${color}" "$tmpFile" || exit 2 convert "$tmpFile" -bordercolor black -border "${borderSize}x${borderSize}" "$outputFile" || clean && exit 2