mirror of
				https://github.com/the-sane/lug-helper.git
				synced 2025-11-04 11:13:27 +00:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			02d8f4b685
			...
			5cfb306289
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					5cfb306289 | ||
| 
						 | 
					80017b848e | ||
| 
						 | 
					80db33be07 | ||
| 
						 | 
					c497f8e1d8 | ||
| 
						 | 
					eedb5de460 | ||
| 
						 | 
					3a7e0996b5 | ||
| 
						 | 
					402b22ea45 | ||
| 
						 | 
					10812a622d | ||
| 
						 | 
					f5abb87cb5 | ||
| 
						 | 
					bd119c4ce8 | 
							
								
								
									
										129
									
								
								lug-helper.sh
									
									
									
									
									
								
							
							
						
						
									
										129
									
								
								lug-helper.sh
									
									
									
									
									
								
							@@ -277,7 +277,6 @@ message() {
 | 
				
			|||||||
                clear
 | 
					                clear
 | 
				
			||||||
                printf "\n$2\n\n"
 | 
					                printf "\n$2\n\n"
 | 
				
			||||||
                read -n 1 -s -p "Press any key..."
 | 
					                read -n 1 -s -p "Press any key..."
 | 
				
			||||||
                return 0
 | 
					 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
            "question")
 | 
					            "question")
 | 
				
			||||||
                # question
 | 
					                # question
 | 
				
			||||||
@@ -346,7 +345,7 @@ menu() {
 | 
				
			|||||||
    elif [ -z "$cancel_label" ]; then
 | 
					    elif [ -z "$cancel_label" ]; then
 | 
				
			||||||
        debug_print exit "Script error: The string 'cancel_label' was not set\nbefore calling the menu function. Aborting."
 | 
					        debug_print exit "Script error: The string 'cancel_label' was not set\nbefore calling the menu function. Aborting."
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    # Use Zenity if it is available
 | 
					    # Use Zenity if it is available
 | 
				
			||||||
    if [ "$use_zenity" -eq 1 ]; then
 | 
					    if [ "$use_zenity" -eq 1 ]; then
 | 
				
			||||||
        # Format the options array for Zenity by adding
 | 
					        # Format the options array for Zenity by adding
 | 
				
			||||||
@@ -362,7 +361,7 @@ menu() {
 | 
				
			|||||||
                zen_options+=("${menu_options[i]}")
 | 
					                zen_options+=("${menu_options[i]}")
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        done
 | 
					        done
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
        # Display the zenity radio button menu
 | 
					        # Display the zenity radio button menu
 | 
				
			||||||
        choice="$(zenity --list --radiolist --width="480" --height="$menu_height" --text="$menu_text_zenity" --title="Star Citizen LUG Helper" --hide-header --cancel-label "$cancel_label" --window-icon="$lug_logo" --column="" --column="Option" "${zen_options[@]}" 2>/dev/null)"
 | 
					        choice="$(zenity --list --radiolist --width="480" --height="$menu_height" --text="$menu_text_zenity" --title="Star Citizen LUG Helper" --hide-header --cancel-label "$cancel_label" --window-icon="$lug_logo" --column="" --column="Option" "${zen_options[@]}" 2>/dev/null)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -574,19 +573,25 @@ display_dirs() {
 | 
				
			|||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Lutris runners
 | 
					    # Lutris runners
 | 
				
			||||||
    if [ -d "$runners_dir_native" ]; then
 | 
					    if [ -d "$runners_dir_native" ] || [ -d "$runners_dir_flatpak" ]; then
 | 
				
			||||||
        dirs_list+="\n\nLutris Runners:\n$runners_dir_native"
 | 
					        dirs_list+="\n\nLutris Runners:"
 | 
				
			||||||
    fi
 | 
					        if [ -d "$runners_dir_native" ]; then
 | 
				
			||||||
    if [ -d "$runners_dir_flatpak" ]; then
 | 
					            dirs_list+="\n$runners_dir_native"
 | 
				
			||||||
        dirs_list+="\n\nLutris Runners:\n$runners_dir_flatpak"
 | 
					        fi
 | 
				
			||||||
 | 
					        if [ -d "$runners_dir_flatpak" ]; then
 | 
				
			||||||
 | 
					            dirs_list+="\n$runners_dir_flatpak"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Lutris dxvk
 | 
					    # Lutris dxvk
 | 
				
			||||||
    if [ -d "$dxvk_dir_native" ]; then
 | 
					    if [ -d "$dxvk_dir_native" ] || [ -d "$dxvk_dir_flatpak" ]; then
 | 
				
			||||||
        dirs_list+="\n\nLutris DXVK Versions:\n$dxvk_dir_native"
 | 
					        dirs_list+="\n\nLutris DXVK Versions:"
 | 
				
			||||||
    fi
 | 
					        if [ -d "$dxvk_dir_native" ]; then
 | 
				
			||||||
    if [ -d "$dxvk_dir_flatpak" ]; then
 | 
					            dirs_list+="\n$dxvk_dir_native"
 | 
				
			||||||
        dirs_list+="\n\nLutris DXVK Versions:\n$dxvk_dir_flatpak"
 | 
					        fi
 | 
				
			||||||
 | 
					        if [ -d "$dxvk_dir_flatpak" ]; then
 | 
				
			||||||
 | 
					            dirs_list+="\n$dxvk_dir_flatpak"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Format the info header
 | 
					    # Format the info header
 | 
				
			||||||
@@ -957,26 +962,16 @@ lutris_restart() {
 | 
				
			|||||||
    lutris_detect
 | 
					    lutris_detect
 | 
				
			||||||
    if [ "$lutris_needs_restart" = "true" ] && [ "$(pgrep -f lutris)" ]; then
 | 
					    if [ "$lutris_needs_restart" = "true" ] && [ "$(pgrep -f lutris)" ]; then
 | 
				
			||||||
        if message question "Lutris must be restarted to detect the changes.\nWould you like this Helper to restart it for you?"; then
 | 
					        if message question "Lutris must be restarted to detect the changes.\nWould you like this Helper to restart it for you?"; then
 | 
				
			||||||
            debug_print continue "Restarting Lutris..."
 | 
					            # Detect which version of Lutris is running and restart it
 | 
				
			||||||
            # Detect which version of Lutris is installed
 | 
					            if [ "$lutris_native" = "true" ] && pgrep -f lutris | xargs ps -fp | grep -q "/usr/bin/lutris"; then
 | 
				
			||||||
            if [ "$lutris_native" = "true" ] && [ "$lutris_flatpak" = "true" ]; then
 | 
					                # Native Lutris is running
 | 
				
			||||||
                # Both versions of Lutris are installed so ask the user
 | 
					                debug_print continue "Restarting native Lutris..."
 | 
				
			||||||
                if zenity --question --cancel-label="Flatpak" --ok-label="Native" --window-icon="$lug_logo" --text="This Helper has detected both the Native and Flatpak versions of Lutris\nWhich version would you like to use?" --width="400" --title="Star Citizen LUG Helper" 2>/dev/null; then
 | 
					 | 
				
			||||||
                    # Native version
 | 
					 | 
				
			||||||
                    pkill -f -SIGTERM lutris && nohup lutris </dev/null &>/dev/null &
 | 
					 | 
				
			||||||
                else
 | 
					 | 
				
			||||||
                    # Flatpak version
 | 
					 | 
				
			||||||
                    pkill -f -SIGTERM lutris && nohup flatpak run net.lutris.Lutris </dev/null &>/dev/null &
 | 
					 | 
				
			||||||
                fi
 | 
					 | 
				
			||||||
            elif [ "$lutris_native" = "true" ]; then
 | 
					 | 
				
			||||||
                # Native version only
 | 
					 | 
				
			||||||
                pkill -f -SIGTERM lutris && nohup lutris </dev/null &>/dev/null &
 | 
					                pkill -f -SIGTERM lutris && nohup lutris </dev/null &>/dev/null &
 | 
				
			||||||
            elif [ "$lutris_flatpak" = "true" ]; then
 | 
					            fi
 | 
				
			||||||
                # Flatpak version only
 | 
					            if [ "$lutris_flatpak" = "true" ] && pgrep -f lutris | xargs ps -fp | grep -q "lutris-wrapper"; then
 | 
				
			||||||
 | 
					                # Flatpak Lutris is running
 | 
				
			||||||
 | 
					                debug_print continue "Restarting flatpak Lutris..."
 | 
				
			||||||
                pkill -f -SIGTERM lutris && nohup flatpak run net.lutris.Lutris </dev/null &>/dev/null &
 | 
					                pkill -f -SIGTERM lutris && nohup flatpak run net.lutris.Lutris </dev/null &>/dev/null &
 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
                # We shouldn't get here
 | 
					 | 
				
			||||||
                debug_print exit "Script error: Unknown condition in lutris_restart function. Aborting."
 | 
					 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -1554,7 +1549,8 @@ runner_manage() {
 | 
				
			|||||||
    missing_dir="false"
 | 
					    missing_dir="false"
 | 
				
			||||||
    for (( i=1; i<"${#download_dirs[@]}"; i=i+2 )); do
 | 
					    for (( i=1; i<"${#download_dirs[@]}"; i=i+2 )); do
 | 
				
			||||||
        if [ ! -d "${download_dirs[i]}" ]; then
 | 
					        if [ ! -d "${download_dirs[i]}" ]; then
 | 
				
			||||||
            message info "The following Lutris directory was not found.  Unable to continue.\n\n${download_dirs[i]}"
 | 
					            message warning "The following Lutris directory was not found.  Unable to continue.\n\n${download_dirs[i]}"
 | 
				
			||||||
 | 
					            debug_print continue "The following Lutris directory was not found.  Unable to continue.\n\n${download_dirs[i]}"
 | 
				
			||||||
            missing_dir="true"
 | 
					            missing_dir="true"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
@@ -1609,7 +1605,8 @@ dxvk_manage() {
 | 
				
			|||||||
    missing_dir="false"
 | 
					    missing_dir="false"
 | 
				
			||||||
    for (( i=1; i<"${#download_dirs[@]}"; i=i+2 )); do
 | 
					    for (( i=1; i<"${#download_dirs[@]}"; i=i+2 )); do
 | 
				
			||||||
        if [ ! -d "${download_dirs[i]}" ]; then
 | 
					        if [ ! -d "${download_dirs[i]}" ]; then
 | 
				
			||||||
            message info "The following Lutris directory was not found.  Unable to continue.\n\n${download_dirs[i]}"
 | 
					            message warning "The following Lutris directory was not found.  Unable to continue.\n\n${download_dirs[i]}"
 | 
				
			||||||
 | 
					            debug_print continue "The following Lutris directory was not found.  Unable to continue.\n\n${download_dirs[i]}"
 | 
				
			||||||
            missing_dir="true"
 | 
					            missing_dir="true"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
@@ -1664,7 +1661,7 @@ eac_workaround() {
 | 
				
			|||||||
        else
 | 
					        else
 | 
				
			||||||
            message info "The Easy Anti-Cheat workaround has already been applied, but may be commented out.\nNo changes have been made, please edit /etc/hosts manually."
 | 
					            message info "The Easy Anti-Cheat workaround has already been applied, but may be commented out.\nNo changes have been made, please edit /etc/hosts manually."
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        return 1
 | 
					        return 0
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Configure message variables
 | 
					    # Configure message variables
 | 
				
			||||||
@@ -1717,20 +1714,30 @@ install_game() {
 | 
				
			|||||||
            # Both versions of Lutris are installed so ask the user
 | 
					            # Both versions of Lutris are installed so ask the user
 | 
				
			||||||
            if zenity --question --cancel-label="Flatpak" --ok-label="Native" --window-icon="$lug_logo" --text="This Helper has detected both the Native and Flatpak versions of Lutris\nWhich version would you like to use?" --width="400" --title="Star Citizen LUG Helper" 2>/dev/null; then
 | 
					            if zenity --question --cancel-label="Flatpak" --ok-label="Native" --window-icon="$lug_logo" --text="This Helper has detected both the Native and Flatpak versions of Lutris\nWhich version would you like to use?" --width="400" --title="Star Citizen LUG Helper" 2>/dev/null; then
 | 
				
			||||||
                # Native version
 | 
					                # Native version
 | 
				
			||||||
                lutris --install "$install_script" &
 | 
					                install_version="native"
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                # Flatpak version
 | 
					                # Flatpak version
 | 
				
			||||||
                flatpak run net.lutris.Lutris --install "$install_script" &
 | 
					                install_version="flatpak"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        elif [ "$lutris_native" = "true" ]; then
 | 
					        elif [ "$lutris_native" = "true" ]; then
 | 
				
			||||||
            # Native version only
 | 
					            # Native version only
 | 
				
			||||||
            lutris --install "$install_script" &
 | 
					            install_version="native"
 | 
				
			||||||
        elif [ "$lutris_flatpak" = "true" ]; then
 | 
					        elif [ "$lutris_flatpak" = "true" ]; then
 | 
				
			||||||
            # Flatpak version only
 | 
					            # Flatpak version only
 | 
				
			||||||
 | 
					            install_version="flatpak"
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            # We shouldn't get here
 | 
				
			||||||
 | 
					            debug_print exit "Script error: Unable to detect Lutris version in install_game function. Aborting."
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        # Run the appropriate installer
 | 
				
			||||||
 | 
					        if [ "$install_version" = "native" ]; then
 | 
				
			||||||
 | 
					            lutris --install "$install_script" &
 | 
				
			||||||
 | 
					        elif [ "$install_version" = "flatpak" ]; then
 | 
				
			||||||
            flatpak run net.lutris.Lutris --install "$install_script" &
 | 
					            flatpak run net.lutris.Lutris --install "$install_script" &
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            # We shouldn't get here
 | 
					            # We shouldn't get here
 | 
				
			||||||
            debug_print exit "Script error: Unknown condition in install_game function. Aborting."
 | 
					            debug_print exit "Script error: Unknown condition for install_version in install_game() function. Aborting."
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        message info "The installation will continue in Lutris"
 | 
					        message info "The installation will continue in Lutris"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -1891,6 +1898,22 @@ fi
 | 
				
			|||||||
# Set defaults
 | 
					# Set defaults
 | 
				
			||||||
live_or_ptu="$live_dir"
 | 
					live_or_ptu="$live_dir"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Format some URLs for Zenity
 | 
				
			||||||
 | 
					if [ "$use_zenity" -eq 1 ]; then
 | 
				
			||||||
 | 
					    releases_url="<a href='$releases_url'>$releases_url</a>"
 | 
				
			||||||
 | 
					    lug_wiki="<a href='$lug_wiki'>$lug_wiki</a>"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if a newer verison of the script is available
 | 
				
			||||||
 | 
					latest_version="$(get_latest_release "$repo")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Sort the versions and check if the installed Helper is smaller
 | 
				
			||||||
 | 
					if [ "$latest_version" != "$current_version" ] &&
 | 
				
			||||||
 | 
					   [ "$current_version" = "$(printf "$current_version\n$latest_version" | sort -V | head -n1)" ]; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    message info "The latest version of the LUG Helper is $latest_version\nYou are using $current_version\n\nYou can download new releases here:\n$releases_url"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# If invoked with command line arguments, process them and exit
 | 
					# If invoked with command line arguments, process them and exit
 | 
				
			||||||
if [ "$#" -gt 0 ]; then
 | 
					if [ "$#" -gt 0 ]; then
 | 
				
			||||||
    while [ "$#" -gt 0 ]
 | 
					    while [ "$#" -gt 0 ]
 | 
				
			||||||
@@ -1902,15 +1925,17 @@ if [ "$#" -gt 0 ]; then
 | 
				
			|||||||
Usage: lug-helper <options>
 | 
					Usage: lug-helper <options>
 | 
				
			||||||
  -p, --preflight-check     Run system optimization checks
 | 
					  -p, --preflight-check     Run system optimization checks
 | 
				
			||||||
  -i, --install             Install Star Citizen
 | 
					  -i, --install             Install Star Citizen
 | 
				
			||||||
 | 
					  -e, --eac                 Deploy Easy Anti-Cheat Workaround
 | 
				
			||||||
  -m, --manage-runners      Install or remove Lutris runners
 | 
					  -m, --manage-runners      Install or remove Lutris runners
 | 
				
			||||||
  -k, --manage-dxvk         Install or remove DXVK versions
 | 
					  -k, --manage-dxvk         Install or remove DXVK versions
 | 
				
			||||||
  -u, --delete-user-folder  Delete Star Citizen USER folder, preserving keybinds
 | 
					  -u, --delete-user-folder  Delete Star Citizen USER folder, preserving keybinds
 | 
				
			||||||
  -s, --delete-shaders      Delete Star Citizen shaders directory
 | 
					  -s, --delete-shaders      Delete Star Citizen shaders
 | 
				
			||||||
  -c, --delete-dxvk-cache   Delete Star Citizen dxvk cache file
 | 
					  -c, --delete-dxvk-cache   Delete Star Citizen dxvk cache file
 | 
				
			||||||
  -t, --target=[live|ptu]   Target LIVE or PTU (default live)
 | 
					  -t, --target=[live|ptu]   Target LIVE or PTU (default live)
 | 
				
			||||||
  -g, --use-gui=[yes|no]    Use Zenity GUI if available (default yes)
 | 
					  -g, --use-gui=[yes|no]    Use Zenity GUI if available (default yes)
 | 
				
			||||||
  -r, --get-referral        Get a random LUG member's Star Citizen referral code
 | 
					  -r, --get-referral        Get a random LUG member's Star Citizen referral code
 | 
				
			||||||
  -d, --show-directories    Show all Star Citizen and LUG Helper directories
 | 
					  -d, --show-directories    Show all Star Citizen and LUG Helper directories
 | 
				
			||||||
 | 
					  -w, --show-wiki           Show the LUG Wiki
 | 
				
			||||||
  -x, --reset-helper        Delete saved lug-helper configs
 | 
					  -x, --reset-helper        Delete saved lug-helper configs
 | 
				
			||||||
"
 | 
					"
 | 
				
			||||||
                exit 0
 | 
					                exit 0
 | 
				
			||||||
@@ -1921,6 +1946,9 @@ Usage: lug-helper <options>
 | 
				
			|||||||
            --install | -i )
 | 
					            --install | -i )
 | 
				
			||||||
                cargs+=("install_game")
 | 
					                cargs+=("install_game")
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
 | 
					            --eac | -e )
 | 
				
			||||||
 | 
					                cargs+=("eac_workaround")
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
            --manage-runners | -m )
 | 
					            --manage-runners | -m )
 | 
				
			||||||
                cargs+=("runner_manage")
 | 
					                cargs+=("runner_manage")
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
@@ -1968,6 +1996,9 @@ Usage: lug-helper <options>
 | 
				
			|||||||
            --show-directories | -d )
 | 
					            --show-directories | -d )
 | 
				
			||||||
                cargs+=("display_dirs")
 | 
					                cargs+=("display_dirs")
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
 | 
					            --show-wiki | -w )
 | 
				
			||||||
 | 
					                cargs+=("display_wiki")
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
            --reset-helper | -x )
 | 
					            --reset-helper | -x )
 | 
				
			||||||
                cargs+=("reset_helper")
 | 
					                cargs+=("reset_helper")
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
@@ -1982,29 +2013,13 @@ Usage: lug-helper <options>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    # Call the requested functions and exit
 | 
					    # Call the requested functions and exit
 | 
				
			||||||
    if [ "${#cargs[@]}" -gt 0 ]; then
 | 
					    if [ "${#cargs[@]}" -gt 0 ]; then
 | 
				
			||||||
        for (( i=0; i<"${#cargs[@]}"; i++ )); do
 | 
					        for (( x=0; x<"${#cargs[@]}"; x++ )); do
 | 
				
			||||||
            ${cargs[i]}
 | 
					            ${cargs[x]}
 | 
				
			||||||
        done
 | 
					        done
 | 
				
			||||||
        exit 0
 | 
					        exit 0
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Format some URLs for Zenity
 | 
					 | 
				
			||||||
if [ "$use_zenity" -eq 1 ]; then
 | 
					 | 
				
			||||||
    releases_url="<a href='$releases_url'>$releases_url</a>"
 | 
					 | 
				
			||||||
    lug_wiki="<a href='$lug_wiki'>$lug_wiki</a>"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if a newer verison of the script is available
 | 
					 | 
				
			||||||
latest_version="$(get_latest_release "$repo")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Sort the versions and check if the installed Helper is smaller
 | 
					 | 
				
			||||||
if [ "$latest_version" != "$current_version" ] &&
 | 
					 | 
				
			||||||
   [ "$current_version" = "$(printf "$current_version\n$latest_version" | sort -V | head -n1)" ]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    message info "The latest version of the LUG Helper is $latest_version\nYou are using $current_version\n\nYou can download new releases here:\n$releases_url"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Loop the main menu until the user selects quit
 | 
					# Loop the main menu until the user selects quit
 | 
				
			||||||
while true; do
 | 
					while true; do
 | 
				
			||||||
    # Configure the menu
 | 
					    # Configure the menu
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user