# snippet to parse args in apply-color scripts [ -z "$1" ] && exit 1 palette="$1" [ -z "$2" ] && exit 1 colorName="$2" [ -z "$3" ] && exit 1 colorHex="$3" function log_error { printf "\033[0;31mError:\033[0m $1\n" >&2 } function log_info { printf "\033[0;32mInfo:\033[0m $1\n" >&2 } # remove leading '#' if present if [[ $colorHex == \#* ]]; then colorHex="${colorHex#\#}" fi # check if hex if ! [[ $colorHex =~ ^[0-9A-Fa-f]{6}$ ]]; then log_error "Invalid color hex: $colorHex" exit 1 fi function log_success { log_info "Applied primary color ${colorName} (${colorHex}) to \033[1;34m$1\033[0m" }