2025-07-06 19:44:54 +00:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
2025-07-10 13:01:34 +00:00
|
|
|
|
colors_supported() {
|
|
|
|
|
# Check if stdout is a terminal
|
|
|
|
|
[[ -t 1 ]] || return 1
|
|
|
|
|
|
|
|
|
|
# Check if TERM is set and not "dumb"
|
|
|
|
|
[[ -n "$TERM" && "$TERM" != "dumb" ]] || return 1
|
|
|
|
|
|
|
|
|
|
# Check if tput is available and supports colors
|
|
|
|
|
if command -v tput >/dev/null 2>&1; then
|
|
|
|
|
tput setaf 1 >/dev/null 2>&1 || return 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if colors_supported; then
|
|
|
|
|
# Colors & Styles for output
|
|
|
|
|
RED='\033[0;31m'
|
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
BLUE='\033[0;34m'
|
|
|
|
|
BOLD='\033[1m'
|
|
|
|
|
NC='\033[0m' # No Color
|
|
|
|
|
else
|
|
|
|
|
RED=''
|
|
|
|
|
GREEN=''
|
|
|
|
|
BLUE=''
|
|
|
|
|
BOLD=''
|
|
|
|
|
NC=''
|
|
|
|
|
fi
|
2025-07-06 19:44:54 +00:00
|
|
|
|
|
|
|
|
|
print_success() {
|
|
|
|
|
printf "%b✓%b %s\n" "$GREEN" "$NC" "$1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print_info() {
|
|
|
|
|
printf "%b%bℹ%b %s\n" "$BLUE" "$BOLD" "$NC" "$1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print_step() {
|
|
|
|
|
printf "%b===%b%b %s %b%b===%b\n" "$BLUE" "$NC" "$BOLD" "$1" "$NC" "$BLUE" "$NC"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print_warning() {
|
|
|
|
|
printf "%b⚠%b %s\n" "$YELLOW" "$NC" "$1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print_error() {
|
|
|
|
|
printf "%b⚠%b %s\n" "$RED" "$NC" "$1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pushdir() {
|
|
|
|
|
pushd $1 > /dev/null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
popdir() {
|
|
|
|
|
popd > /dev/null
|
|
|
|
|
}
|