diff --git a/scripts/bin/color b/scripts/bin/color index 277e517..63dee55 100755 --- a/scripts/bin/color +++ b/scripts/bin/color @@ -1,22 +1,30 @@ #!/usr/bin/env bash + +# Join all arguments into one string and append the reset code &r tmp="$*&r" -tmp="${tmp//&0/\033[0;30m}" -tmp="${tmp//&1/\033[0;34m}" -tmp="${tmp//&2/\033[0;32m}" -tmp="${tmp//&3/\033[0;36m}" -tmp="${tmp//&4/\033[0;31m}" -tmp="${tmp//&5/\033[0;35m}" -tmp="${tmp//&6/\033[0;33m}" -tmp="${tmp//&7/\033[0;37m}" -tmp="${tmp//&8/\033[1;30m}" -tmp="${tmp//&9/\033[1;34m}" -tmp="${tmp//&a/\033[1;32m}" -tmp="${tmp//&b/\033[1;36m}" -tmp="${tmp//&c/\033[1;31m}" -tmp="${tmp//&d/\033[1;35m}" -tmp="${tmp//&e/\033[1;33m}" -tmp="${tmp//&f/\033[1;37m}" -tmp="${tmp//&r/\033[0m}" + +# Replace Minecraft-style color codes with ANSI escape sequences +tmp="${tmp//&0/$'\e[0;30m'}" +tmp="${tmp//&1/$'\e[0;34m'}" +tmp="${tmp//&2/$'\e[0;32m'}" +tmp="${tmp//&3/$'\e[0;36m'}" +tmp="${tmp//&4/$'\e[0;31m'}" +tmp="${tmp//&5/$'\e[0;35m'}" +tmp="${tmp//&6/$'\e[0;33m'}" +tmp="${tmp//&7/$'\e[0;37m'}" +tmp="${tmp//&8/$'\e[1;30m'}" +tmp="${tmp//&9/$'\e[1;34m'}" +tmp="${tmp//&a/$'\e[1;32m'}" +tmp="${tmp//&b/$'\e[1;36m'}" +tmp="${tmp//&c/$'\e[1;31m'}" +tmp="${tmp//&d/$'\e[1;35m'}" +tmp="${tmp//&e/$'\e[1;33m'}" +tmp="${tmp//&f/$'\e[1;37m'}" +tmp="${tmp//&r/$'\e[0m'}" + +# Replace &n with a literal newline newline=$'\n' tmp="${tmp//&n/$newline}" -echo "$tmp" \ No newline at end of file + +# Use -e to ensure the shell interprets the escape characters +echo -e "$tmp"