Arc-39-theme/scripts/darker.sh

34 lines
661 B
Bash
Executable File

#!/usr/bin/env bash
set -ueo pipefail
#set -x
darker_channel() {
value="$1"
light_delta="$2"
result="$(bc <<< "ibase=16; $value - $light_delta")"
if [[ "$result" -lt 0 ]]; then
result=0
fi
if [[ "$result" -gt 255 ]]; then
result=255
fi
echo "$result"
}
darker() {
hexinput="$(tr '[:lower:]' '[:upper:]' <<< "$1")"
light_delta="${2-10}"
a="$(cut -c-2 <<< "$hexinput")"
b="$(cut -c3-4 <<< "$hexinput")"
c="$(cut -c5-6 <<< "$hexinput")"
r="$(darker_channel "$a" "$light_delta")"
g="$(darker_channel "$b" "$light_delta")"
b="$(darker_channel "$c" "$light_delta")"
printf '%02x%02x%02x\n' "$r" "$g" "$b"
}
darker "$@"