diff --git a/modules/performance/mysql-query-analyzer.sh b/modules/performance/mysql-query-analyzer.sh index 04c072c..100a189 100755 --- a/modules/performance/mysql-query-analyzer.sh +++ b/modules/performance/mysql-query-analyzer.sh @@ -42,28 +42,35 @@ main() { # Analysis options menu echo -e "${BOLD}Analysis Options:${NC}" echo "" - echo -e " ${GREEN}1)${NC} Full System Analysis (all databases)" - echo -e " ${GREEN}2)${NC} Single User Analysis" - echo -e " ${GREEN}3)${NC} Live Query Monitor (real-time)" - echo -e " ${GREEN}4)${NC} Slow Query Log Analysis" - echo -e " ${GREEN}5)${NC} Table Size Analysis" - echo -e " ${GREEN}6)${NC} Quick Health Check" + echo -e " ${CYAN}1)${NC} Full System Analysis (all databases)" + echo -e " ${CYAN}2)${NC} Single User Analysis" + echo -e " ${CYAN}3)${NC} Live Query Monitor (real-time)" + echo -e " ${CYAN}4)${NC} Slow Query Log Analysis" + echo -e " ${CYAN}5)${NC} Table Size Analysis" + echo -e " ${CYAN}6)${NC} Quick Health Check" echo "" echo -e " ${RED}0)${NC} Back to menu" echo "" - read -p "Select option: " choice + # Validate choice input with retry loop + while true; do + read -p "Select option (0-6): " choice - case $choice in - 1) run_full_analysis ;; - 2) run_user_analysis ;; - 3) run_live_monitor ;; - 4) run_slow_query_analysis ;; - 5) run_table_size_analysis ;; - 6) run_quick_health_check ;; - 0) return 0 ;; - *) print_error "Invalid option" ; sleep 2 ; main ;; - esac + if ! [[ "$choice" =~ ^[0-6]$ ]]; then + print_error "Invalid choice. Please enter 0-6" + continue + fi + + case $choice in + 1) run_full_analysis; break ;; + 2) run_user_analysis; break ;; + 3) run_live_monitor; break ;; + 4) run_slow_query_analysis; break ;; + 5) run_table_size_analysis; break ;; + 6) run_quick_health_check; break ;; + 0) return 0 ;; + esac + done } #############################################################################