mirror of
https://github.com/10h30/kazewp.git
synced 2026-05-12 15:21:20 +09:00
add interaction menu, add color format for more visual appeal, add stop / start functionalliity
This commit is contained in:
+122
-13
@@ -1,13 +1,122 @@
|
||||
if [ -t 1 ]; then
|
||||
# Terminal supports colors
|
||||
NC='\033[0m' # No Color
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
else
|
||||
# Disable colors for non-terminal outputs (like logs)
|
||||
NC=''
|
||||
RED=''
|
||||
GREEN=''
|
||||
BLUE=''
|
||||
fi
|
||||
#!/bin/bash
|
||||
|
||||
# Reset
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Regular Colors
|
||||
BLACK='\033[0;30m'
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[0;33m'
|
||||
BLUE='\033[0;34m'
|
||||
PURPLE='\033[0;35m'
|
||||
CYAN='\033[0;36m'
|
||||
WHITE='\033[0;37m'
|
||||
|
||||
# Bold Colors
|
||||
BBLACK='\033[1;30m'
|
||||
BRED='\033[1;31m'
|
||||
BGREEN='\033[1;32m'
|
||||
BYELLOW='\033[1;33m'
|
||||
BBLUE='\033[1;34m'
|
||||
BPURPLE='\033[1;35m'
|
||||
BCYAN='\033[1;36m'
|
||||
BWHITE='\033[1;37m'
|
||||
|
||||
# Underline
|
||||
UBLACK='\033[4;30m'
|
||||
URED='\033[4;31m'
|
||||
UGREEN='\033[4;32m'
|
||||
UYELLOW='\033[4;33m'
|
||||
UBLUE='\033[4;34m'
|
||||
UPURPLE='\033[4;35m'
|
||||
UCYAN='\033[4;36m'
|
||||
UWHITE='\033[4;37m'
|
||||
|
||||
# Background Colors
|
||||
BG_BLACK='\033[40m'
|
||||
BG_RED='\033[41m'
|
||||
BG_GREEN='\033[42m'
|
||||
BG_YELLOW='\033[43m'
|
||||
BG_BLUE='\033[44m'
|
||||
BG_PURPLE='\033[45m'
|
||||
BG_CYAN='\033[46m'
|
||||
BG_WHITE='\033[47m'
|
||||
|
||||
# Styling Helper Functions
|
||||
print_header() {
|
||||
local text="$1"
|
||||
local padding=2 # Padding on each side
|
||||
local terminal_width=$(tput cols)
|
||||
local text_length=${#text}
|
||||
local total_padding=$(( (terminal_width - text_length - 2) / 2 ))
|
||||
|
||||
echo
|
||||
printf "${BBLUE}%${terminal_width}s${NC}\n" | tr ' ' '='
|
||||
printf "${BBLUE}|${NC}%${total_padding}s${BWHITE}%s${NC}%${total_padding}s${BBLUE}|${NC}\n" "" "$text" ""
|
||||
printf "${BBLUE}%${terminal_width}s${NC}\n" | tr ' ' '='
|
||||
}
|
||||
|
||||
|
||||
print_subheader() {
|
||||
local text="$1"
|
||||
echo -e "\n${BCYAN}> ${text}${NC}"
|
||||
echo -e "${CYAN}$(printf '%.s-' $(seq 1 $(tput cols)))${NC}"
|
||||
}
|
||||
|
||||
print_menu_item() {
|
||||
local number="$1"
|
||||
local text="$2"
|
||||
local status="${3:-}"
|
||||
|
||||
if [ -n "$status" ]; then
|
||||
echo -e "${BWHITE}$number)${NC} $text ${status}"
|
||||
else
|
||||
echo -e "${BWHITE}$number)${NC} $text"
|
||||
fi
|
||||
}
|
||||
|
||||
print_menu_action() {
|
||||
local key="$1"
|
||||
local text="$2"
|
||||
echo -e "${BPURPLE}$key)${NC} $text"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${BGREEN}✓${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${BRED}✗${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${BYELLOW}! $1${NC}"
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "${WHITE}$1${NC}"
|
||||
}
|
||||
|
||||
print_separator() {
|
||||
echo -e "${BLUE}$(printf '%.s-' $(seq 1 $(tput cols)))${NC}"
|
||||
}
|
||||
|
||||
# Status Indicators with simple ASCII
|
||||
status_running() {
|
||||
echo -e "${BGREEN}[ RUNNING ]${NC}"
|
||||
}
|
||||
|
||||
status_stopped() {
|
||||
echo -e "${BRED}[ STOPPED ]${NC}"
|
||||
}
|
||||
|
||||
status_partial() {
|
||||
local running="$1"
|
||||
local total="$2"
|
||||
echo -e "${BYELLOW}[ PARTIAL: $running/$total ]${NC}"
|
||||
}
|
||||
|
||||
status_loading() {
|
||||
echo -e "${BCYAN}[ LOADING ]${NC}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user