mirror of
https://github.com/godotengine/godot-website.git
synced 2025-12-31 09:48:43 +03:00
Huge thanks to JohnVeness, AThousandShips, and Meorge for their great help rewording my broken English.
147 lines
2.3 KiB
Bash
147 lines
2.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
color() {
|
|
local BLACK="0"
|
|
local RED="1"
|
|
local GREEN="2"
|
|
local YELLOW="3"
|
|
local BLUE="4"
|
|
local PURPLE="5"
|
|
local CYAN="6"
|
|
local WHITE="7"
|
|
|
|
local type="$1"
|
|
local color="$2"
|
|
local uppercase_color="${color^^}"
|
|
|
|
validate_color() {
|
|
case "$color" in
|
|
black | red | green | yellow | blue | purple | cyan | white) ;;
|
|
?)
|
|
echo_err "Invalid color: \"$color\""
|
|
return 1
|
|
;;
|
|
esac
|
|
return 0
|
|
}
|
|
|
|
case "$type" in
|
|
r | reg | regular)
|
|
if validate_color; then
|
|
echo -e "\e[0;3${!uppercase_color}m"
|
|
else
|
|
return 1
|
|
fi
|
|
;;
|
|
b | bold)
|
|
if validate_color; then
|
|
echo -e "\e[1;3${!uppercase_color}m"
|
|
else
|
|
return 1
|
|
fi
|
|
;;
|
|
u | underline)
|
|
if validate_color; then
|
|
echo -e "\e[4;3${!uppercase_color}m"
|
|
else
|
|
return 1
|
|
fi
|
|
;;
|
|
bg | background)
|
|
if validate_color; then
|
|
echo -e "\e[4${!uppercase_color}m"
|
|
else
|
|
return 1
|
|
fi
|
|
;;
|
|
hi | high)
|
|
if validate_color; then
|
|
echo -e "\e[0;9${!uppercase_color}m"
|
|
else
|
|
return 1
|
|
fi
|
|
;;
|
|
hi-b | hi-bold | high-b | high-bold)
|
|
if validate_color; then
|
|
echo -e "\e[1;9${!uppercase_color}m"
|
|
else
|
|
return 1
|
|
fi
|
|
;;
|
|
hi-bg | hi-background | high-bg | high-background)
|
|
if validate_color; then
|
|
echo -e "\e[0;10${!uppercase_color}m"
|
|
else
|
|
return 1
|
|
fi
|
|
;;
|
|
R | reset)
|
|
echo -e "\e[0m"
|
|
;;
|
|
Rfg | reset-foreground)
|
|
echo -e "\e[39m"
|
|
;;
|
|
Rbg | reset-background)
|
|
echo -e "\e[49m"
|
|
;;
|
|
?)
|
|
echo_err "Error: invalid color type: \"$type\""
|
|
return 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
echo_err() {
|
|
local IFS=" "
|
|
echo "$@" >&2
|
|
}
|
|
export -f echo_err
|
|
|
|
test_ffmpeg() {
|
|
local ffmpeg_path="${1:-ffmpeg}"
|
|
if ! command -v "$ffmpeg_path" >/dev/null 2>&1; then
|
|
echo_err "Error: did not find '$ffmpeg_path', ffmpeg is required"
|
|
show_help 1
|
|
fi
|
|
}
|
|
export -f test_ffmpeg
|
|
|
|
join_list() {
|
|
local IFS="$1"
|
|
shift
|
|
echo "$*"
|
|
}
|
|
export -f join_list
|
|
|
|
parse_int() {
|
|
if [[ "$#" -gt "1" ]]; then
|
|
echo_err "Too many arguments passed to \`${FUNCNAME[0]}\`"
|
|
return 1
|
|
fi
|
|
printf "%d" "$1" 2>/dev/null
|
|
}
|
|
export -f parse_int
|
|
|
|
to_lower() {
|
|
local IFS=" "
|
|
local arg=""
|
|
local -a results=()
|
|
for arg in "$@"; do
|
|
results+=("$(echo "$arg" | awk "{print tolower($1)}")")
|
|
shift
|
|
done
|
|
echo "${results[@]}"
|
|
}
|
|
export -f to_lower
|
|
|
|
to_upper() {
|
|
local IFS=" "
|
|
local arg=""
|
|
local -a results=()
|
|
for arg in "$@"; do
|
|
results+=("$(echo "$arg" | awk "{print toupper(\$1)}")")
|
|
done
|
|
echo "${results[@]}"
|
|
}
|
|
export -f to_upper
|