42 lines
889 B
Plaintext
42 lines
889 B
Plaintext
# 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
|
|
}
|
|
|
|
function color_ansi {
|
|
colorHex="$1"
|
|
|
|
local r=$((16#${colorHex:0:2}))
|
|
local g=$((16#${colorHex:2:2}))
|
|
local b=$((16#${colorHex:4:2}))
|
|
|
|
echo "\033[38;2;${r};${g};${b}m"
|
|
}
|
|
|
|
|
|
# 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 palette \033[1;34m${palette}\033[0m with primary color $(color_ansi $colorHex)${colorName} (#${colorHex})\033[0m to \033[1;34m$1\033[0m"
|
|
} |