From 6fb6241c3c5daa5ac807cfb500478d365377b95c Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Mon, 24 Jun 2024 15:22:05 +0200 Subject: [PATCH] bash - update menu --- x-ui.sh | 123 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 76 insertions(+), 47 deletions(-) diff --git a/x-ui.sh b/x-ui.sh index c72d7be3..6b71b62a 100644 --- a/x-ui.sh +++ b/x-ui.sh @@ -157,6 +157,30 @@ update() { fi } +update_menu() { + echo -e "${yellow}Updating Menu${plain}" + confirm "This function will update the menu to the latest changes." "y" + if [[ $? != 0 ]]; then + LOGE "Cancelled" + if [[ $# == 0 ]]; then + before_show_menu + fi + return 0 + fi + + wget --no-check-certificate -O /usr/bin/x-ui https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.sh + chmod +x /usr/local/x-ui/x-ui.sh + chmod +x /usr/bin/x-ui + + if [[ $? == 0 ]]; then + echo -e "${green}Update successful. The panel has automatically restarted.${plain}" + exit 0 + else + echo -e "${red}Failed to update the menu.${plain}" + return 1 + fi +} + custom_version() { echo "Enter the panel version (like 2.0.0):" read panel_version @@ -247,10 +271,11 @@ reset_webbasepath() { # Apply the new web base path setting /usr/local/x-ui/x-ui setting -webBasePath "${config_webBasePath}" >/dev/null 2>&1 + systemctl restart x-ui # Display confirmation message - echo -e "Web base path has been reset to: ${green} ${config_webBasePath} ${plain}" - echo -e "${green} Please use the new web base path to access the panel. ${plain}" + echo -e "Web base path has been reset to: ${green}${config_webBasePath}${plain}" + echo -e "${green}Please use the new web base path to access the panel.${plain}" } reset_config() { @@ -1303,36 +1328,37 @@ show_menu() { ———————————————— ${green}1.${plain} Install ${green}2.${plain} Update - ${green}3.${plain} Custom Version - ${green}4.${plain} Uninstall + ${green}3.${plain} Update Menu + ${green}4.${plain} Custom Version + ${green}5.${plain} Uninstall ———————————————— - ${green}5.${plain} Reset Username & Password & Secret Token - ${green}6.${plain} Reset Web Base Path - ${green}7.${plain} Reset Settings - ${green}8.${plain} Change Port - ${green}9.${plain} View Current Settings + ${green}6.${plain} Reset Username & Password & Secret Token + ${green}7.${plain} Reset Web Base Path + ${green}8.${plain} Reset Settings + ${green}9.${plain} Change Port + ${green}10.${plain} View Current Settings ———————————————— - ${green}10.${plain} Start - ${green}11.${plain} Stop - ${green}12.${plain} Restart - ${green}13.${plain} Check Status - ${green}14.${plain} Check Logs + ${green}11.${plain} Start + ${green}12.${plain} Stop + ${green}13.${plain} Restart + ${green}14.${plain} Check Status + ${green}15.${plain} Check Logs ———————————————— - ${green}15.${plain} Enable Autostart - ${green}16.${plain} Disable Autostart + ${green}16.${plain} Enable Autostart + ${green}17.${plain} Disable Autostart ———————————————— - ${green}17.${plain} SSL Certificate Management - ${green}18.${plain} Cloudflare SSL Certificate - ${green}19.${plain} IP Limit Management - ${green}20.${plain} WARP Management - ${green}21.${plain} Firewall Management + ${green}18.${plain} SSL Certificate Management + ${green}19.${plain} Cloudflare SSL Certificate + ${green}20.${plain} IP Limit Management + ${green}21.${plain} WARP Management + ${green}22.${plain} Firewall Management ———————————————— - ${green}22.${plain} Enable BBR - ${green}23.${plain} Update Geo Files - ${green}24.${plain} Speedtest by Ookla + ${green}23.${plain} Enable BBR + ${green}24.${plain} Update Geo Files + ${green}25.${plain} Speedtest by Ookla " show_status - echo && read -p "Please enter your selection [0-24]: " num + echo && read -p "Please enter your selection [0-25]: " num case "${num}" in 0) @@ -1345,73 +1371,76 @@ show_menu() { check_install && update ;; 3) - check_install && custom_version + check_install && update_menu ;; 4) - check_install && uninstall + check_install && custom_version ;; 5) - check_install && reset_user + check_install && uninstall ;; 6) - check_install && reset_webbasepath + check_install && reset_user ;; 7) - check_install && reset_config + check_install && reset_webbasepath ;; 8) - check_install && set_port + check_install && reset_config ;; 9) - check_install && check_config + check_install && set_port ;; 10) - check_install && start + check_install && check_config ;; 11) - check_install && stop + check_install && start ;; 12) - check_install && restart + check_install && stop ;; 13) - check_install && status + check_install && restart ;; 14) - check_install && show_log + check_install && status ;; 15) - check_install && enable + check_install && show_log ;; 16) - check_install && disable + check_install && enable ;; 17) - ssl_cert_issue_main + check_install && disable ;; 18) - ssl_cert_issue_CF + ssl_cert_issue_main ;; 19) - iplimit_main + ssl_cert_issue_CF ;; 20) - warp_cloudflare + iplimit_main ;; 21) - firewall_menu + warp_cloudflare ;; 22) - bbr_menu + firewall_menu ;; 23) - update_geo + bbr_menu ;; 24) + update_geo + ;; + 25) run_speedtest ;; *) - LOGE "Please enter the correct number [0-24]" + LOGE "Please enter the correct number [0-25]" ;; esac }