From 5a63fe796afb853bc70ddafa7f49f1f13e4fcebd Mon Sep 17 00:00:00 2001 From: Carlos Martino Date: Fri, 27 Mar 2026 16:47:41 -0300 Subject: [PATCH] Update setup --- setup_homelogic.sh | 55 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/setup_homelogic.sh b/setup_homelogic.sh index 5eb6b06..f2046ab 100755 --- a/setup_homelogic.sh +++ b/setup_homelogic.sh @@ -7,10 +7,38 @@ YELLOW='\033[1;33m' CYAN='\033[1;36m' NC='\033[0m' +teardown_ui() { + local ROWS + ROWS=$(tput lines 2>/dev/null || echo 24) + printf "\033[1;${ROWS}r" # Reset scrolling region to full terminal + printf "\033[?25h" # Ensure cursor is visible + printf "\033[${ROWS};1H" # Move cursor to bottom explicitly +} +trap 'teardown_ui' EXIT INT TERM + +setup_ui() { + clear + local ROWS + ROWS=$(tput lines 2>/dev/null || echo 24) + if [ "$ROWS" -lt 10 ]; then ROWS=10; fi + local LOG_START=8 + + printf "\033[1;1H${BLUE}=========================================${NC}\n" + printf "\033[2;1H${CYAN} HOMELOGIC SETUP SCRIPT ${NC}\n" + printf "\033[3;1H${BLUE}=========================================${NC}\n" + printf "\033[7;1H${YELLOW}--- Verbose Logs ------------------------${NC}\n" + + printf "\033[${LOG_START};${ROWS}r" + printf "\033[${ROWS};1H" +} + print_step() { + printf "\0337\033[5;1H\033[K${BLUE}▶ %s${NC}\0338" "$1" printf "\n${BLUE}========== %s ==========${NC}\n" "$1" } + print_info() { + printf "\0337\033[6;1H\033[K${CYAN} ➜ %s${NC}\0338" "$1" printf "${CYAN}➜ %s${NC}\n" "$1" } @@ -110,6 +138,7 @@ setup_wifitui() { } main() { + clear printf "\n${BLUE}=========================================${NC}\n" printf "${CYAN} HOMELOGIC SETUP MENU ${NC}\n" printf "${BLUE}=========================================${NC}\n" @@ -121,6 +150,22 @@ main() { printf "${YELLOW}Select an option [0-3]: ${NC}" read opt + case "$opt" in + 0|exit|quit|q|Q) + printf "\nExiting setup.\n" + exit 0 + ;; + 1|2|3) + setup_ui + ;; + *) + printf "\n${YELLOW}⚠ Invalid option selected.${NC}\n\n" + sleep 1 + main + return + ;; + esac + case "$opt" in 1) setup_server @@ -138,17 +183,9 @@ main() { ask_optional_step "Tailscale" setup_tailscale ask_optional_step "Wifitui" setup_wifitui ;; - 0|exit|quit|q|Q) - print_info "Exiting setup." - exit 0 - ;; - *) - printf "\n${YELLOW}⚠ Invalid option selected.${NC}\n" - main - return - ;; esac + teardown_ui printf "\n${GREEN}✔ Task complete! Please log out and log back in for shell changes to take effect.${NC}\n" }