mirror of
https://github.com/the-sane/lug-helper.git
synced 2024-12-28 16:54:23 +00:00
Reorder functions
This commit is contained in:
parent
fdfd512bfc
commit
ffd4d9d3ca
548
lug-helper.sh
548
lug-helper.sh
@ -594,114 +594,6 @@ getdirs() {
|
|||||||
backup_path="$conf_dir/$conf_subdir"
|
backup_path="$conf_dir/$conf_subdir"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Display all directories currently used by this helper and Star Citizen
|
|
||||||
display_dirs() {
|
|
||||||
unset dirs_list
|
|
||||||
|
|
||||||
# Helper configs and keybinds
|
|
||||||
if [ -d "$conf_dir/$conf_subdir" ]; then
|
|
||||||
dirs_list+=("\n\nHelper configuration:\n$conf_dir/$conf_subdir\n\nKeybind backups:\n$conf_dir/$conf_subdir/keybinds")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Wine prefix
|
|
||||||
if [ -f "$conf_dir/$conf_subdir/$wine_conf" ]; then
|
|
||||||
dirs_list+="\n\nWine prefix:\n$(cat "$conf_dir/$conf_subdir/$wine_conf")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Star Citizen installation
|
|
||||||
if [ -f "$conf_dir/$conf_subdir/$game_conf" ]; then
|
|
||||||
dirs_list+="\n\nStar Citizen game directory:\n$(cat "$conf_dir/$conf_subdir/$game_conf")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Star Citizen shaders path
|
|
||||||
if [ -f "$conf_dir/$conf_subdir/$wine_conf" ]; then
|
|
||||||
dirs_list+="\n\nStar Citizen shaders:\n$(cat "$conf_dir/$conf_subdir/$wine_conf")/$appdata_path"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Lutris runners
|
|
||||||
if [ -d "$runners_dir_native" ] || [ -d "$runners_dir_flatpak" ]; then
|
|
||||||
dirs_list+="\n\nLutris Runners:"
|
|
||||||
if [ -d "$runners_dir_native" ]; then
|
|
||||||
dirs_list+="\n$runners_dir_native"
|
|
||||||
fi
|
|
||||||
if [ -d "$runners_dir_flatpak" ]; then
|
|
||||||
dirs_list+="\n$runners_dir_flatpak"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Lutris dxvk
|
|
||||||
if [ -d "$dxvk_dir_native" ] || [ -d "$dxvk_dir_flatpak" ]; then
|
|
||||||
dirs_list+="\n\nLutris DXVK Versions:"
|
|
||||||
if [ -d "$dxvk_dir_native" ]; then
|
|
||||||
dirs_list+="\n$dxvk_dir_native"
|
|
||||||
fi
|
|
||||||
if [ -d "$dxvk_dir_flatpak" ]; then
|
|
||||||
dirs_list+="\n$dxvk_dir_flatpak"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format the info header
|
|
||||||
message_heading="These directories are currently being used by this Helper and Star Citizen"
|
|
||||||
if [ "$use_zenity" -eq 1 ]; then
|
|
||||||
message_heading="<b>$message_heading</b>"
|
|
||||||
fi
|
|
||||||
|
|
||||||
message info "$message_heading\n${dirs_list[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Save exported keybinds, wipe the USER directory, and restore keybinds
|
|
||||||
rm_userdir() {
|
|
||||||
# Prompt user to back up the current keybinds in the game
|
|
||||||
message info "Before proceeding, please be sure you have exported\nyour Star Citizen keybinds from within the game.\n\nTo do this, launch the game and go to:\nOptions->Keybindings->Control Profiles->Save Control Settings\n\nGo on; I'll wait."
|
|
||||||
|
|
||||||
# Get/Set directory paths
|
|
||||||
getdirs
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
# User cancelled and wants to return to the main menu
|
|
||||||
# or there was an error
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sanity check
|
|
||||||
if [ ! -d "$user_dir" ]; then
|
|
||||||
message warning "USER directory not found. There is nothing to delete!\n\n$user_dir"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for exported keybind files
|
|
||||||
if [ ! -d "$keybinds_dir" ] || [ -z "$(ls -A "$keybinds_dir")" ]; then
|
|
||||||
if message question "Warning: No exported keybindings found.\nContinuing will erase your existing keybinds!\n\nDo you want to continue anyway?"; then
|
|
||||||
exported=0
|
|
||||||
else
|
|
||||||
# User said no
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
exported=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if message question "The following directory will be deleted:\n\n$user_dir\n\nDo you want to proceed?"; then
|
|
||||||
# Back up keybinds
|
|
||||||
if [ "$exported" -eq 1 ]; then
|
|
||||||
debug_print continue "Backing up keybinds to $backup_path/keybinds..."
|
|
||||||
mkdir -p "$backup_path/keybinds" && cp -r "$keybinds_dir/." "$backup_path/keybinds/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Wipe the user directory
|
|
||||||
debug_print continue "Wiping $user_dir..."
|
|
||||||
rm -r "$user_dir"
|
|
||||||
|
|
||||||
# Restore custom keybinds
|
|
||||||
if [ "$exported" -eq 1 ]; then
|
|
||||||
debug_print continue "Restoring keybinds..."
|
|
||||||
mkdir -p "$keybinds_dir" && cp -r "$backup_path/keybinds/." "$keybinds_dir/"
|
|
||||||
message info "To re-import your keybinds, select it in-game from the list:\nOptions->Keybindings->Control Profiles"
|
|
||||||
fi
|
|
||||||
|
|
||||||
message info "Your Star Citizen USER directory has been cleaned up!"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
######## begin preflight check functions ###################################
|
######## begin preflight check functions ###################################
|
||||||
@ -1702,6 +1594,285 @@ dxvk_manage() {
|
|||||||
######## end download functions ############################################
|
######## end download functions ############################################
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
######## begin maintenance functions #######################################
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# Toggle between the LIVE and PTU game directories for all Helper functions
|
||||||
|
set_version() {
|
||||||
|
if [ "$live_or_ptu" = "$live_dir" ]; then
|
||||||
|
live_or_ptu="$ptu_dir"
|
||||||
|
message info "The Helper will now target your Star Citizen PTU installation."
|
||||||
|
elif [ "$live_or_ptu" = "$ptu_dir" ]; then
|
||||||
|
live_or_ptu="$live_dir"
|
||||||
|
message info "The Helper will now target your Star Citizen LIVE installation."
|
||||||
|
else
|
||||||
|
debug_print continue "Unexpected game version provided. Defaulting to the LIVE installation."
|
||||||
|
live_or_ptu="$live_dir"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Save exported keybinds, wipe the USER directory, and restore keybinds
|
||||||
|
rm_userdir() {
|
||||||
|
# Prompt user to back up the current keybinds in the game
|
||||||
|
message info "Before proceeding, please be sure you have exported\nyour Star Citizen keybinds from within the game.\n\nTo do this, launch the game and go to:\nOptions->Keybindings->Control Profiles->Save Control Settings\n\nGo on; I'll wait."
|
||||||
|
|
||||||
|
# Get/Set directory paths
|
||||||
|
getdirs
|
||||||
|
if [ "$?" -eq 1 ]; then
|
||||||
|
# User cancelled and wants to return to the main menu
|
||||||
|
# or there was an error
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sanity check
|
||||||
|
if [ ! -d "$user_dir" ]; then
|
||||||
|
message warning "USER directory not found. There is nothing to delete!\n\n$user_dir"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for exported keybind files
|
||||||
|
if [ ! -d "$keybinds_dir" ] || [ -z "$(ls -A "$keybinds_dir")" ]; then
|
||||||
|
if message question "Warning: No exported keybindings found.\nContinuing will erase your existing keybinds!\n\nDo you want to continue anyway?"; then
|
||||||
|
exported=0
|
||||||
|
else
|
||||||
|
# User said no
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
exported=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if message question "The following directory will be deleted:\n\n$user_dir\n\nDo you want to proceed?"; then
|
||||||
|
# Back up keybinds
|
||||||
|
if [ "$exported" -eq 1 ]; then
|
||||||
|
debug_print continue "Backing up keybinds to $backup_path/keybinds..."
|
||||||
|
mkdir -p "$backup_path/keybinds" && cp -r "$keybinds_dir/." "$backup_path/keybinds/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Wipe the user directory
|
||||||
|
debug_print continue "Wiping $user_dir..."
|
||||||
|
rm -r "$user_dir"
|
||||||
|
|
||||||
|
# Restore custom keybinds
|
||||||
|
if [ "$exported" -eq 1 ]; then
|
||||||
|
debug_print continue "Restoring keybinds..."
|
||||||
|
mkdir -p "$keybinds_dir" && cp -r "$backup_path/keybinds/." "$keybinds_dir/"
|
||||||
|
message info "To re-import your keybinds, select it in-game from the list:\nOptions->Keybindings->Control Profiles"
|
||||||
|
fi
|
||||||
|
|
||||||
|
message info "Your Star Citizen USER directory has been cleaned up!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Delete the shaders directory
|
||||||
|
rm_shaders() {
|
||||||
|
# Get/Set directory paths
|
||||||
|
getdirs
|
||||||
|
if [ "$?" -eq 1 ]; then
|
||||||
|
# User cancelled and wants to return to the main menu, or error
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Loop through all possible shader directories
|
||||||
|
for appdata_dir in "$shaders_dir"/*; do
|
||||||
|
if [ -d "$appdata_dir/$shaders_subdir" ]; then
|
||||||
|
# If a shaders directory is found, delete it
|
||||||
|
if message question "The following directory will be deleted:\n\n$appdata_dir/$shaders_subdir\n\nDo you want to proceed?"; then
|
||||||
|
debug_print continue "Deleting $appdata_dir/$shaders_subdir..."
|
||||||
|
rm -r "$appdata_dir/$shaders_subdir"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
message info "All shaders have been deleted"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Delete DXVK cache
|
||||||
|
rm_dxvkcache() {
|
||||||
|
# Get/Set directory paths
|
||||||
|
getdirs
|
||||||
|
if [ "$?" -eq 1 ]; then
|
||||||
|
# User cancelled and wants to return to the main menu
|
||||||
|
# or there was an error
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sanity check
|
||||||
|
if [ ! -f "$dxvk_cache" ]; then
|
||||||
|
message warning "Unable to find the DXVK cache file. There is nothing to delete!\n\n$dxvk_cache"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Delete the cache file
|
||||||
|
if message question "The following file will be deleted:\n\n$dxvk_cache\n\nDo you want to proceed?"; then
|
||||||
|
debug_print continue "Deleting $dxvk_cache..."
|
||||||
|
rm "$dxvk_cache"
|
||||||
|
message info "Your DXVK cache has been deleted!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Display all directories currently used by this helper and Star Citizen
|
||||||
|
display_dirs() {
|
||||||
|
unset dirs_list
|
||||||
|
|
||||||
|
# Helper configs and keybinds
|
||||||
|
if [ -d "$conf_dir/$conf_subdir" ]; then
|
||||||
|
dirs_list+=("\n\nHelper configuration:\n$conf_dir/$conf_subdir\n\nKeybind backups:\n$conf_dir/$conf_subdir/keybinds")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Wine prefix
|
||||||
|
if [ -f "$conf_dir/$conf_subdir/$wine_conf" ]; then
|
||||||
|
dirs_list+="\n\nWine prefix:\n$(cat "$conf_dir/$conf_subdir/$wine_conf")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Star Citizen installation
|
||||||
|
if [ -f "$conf_dir/$conf_subdir/$game_conf" ]; then
|
||||||
|
dirs_list+="\n\nStar Citizen game directory:\n$(cat "$conf_dir/$conf_subdir/$game_conf")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Star Citizen shaders path
|
||||||
|
if [ -f "$conf_dir/$conf_subdir/$wine_conf" ]; then
|
||||||
|
dirs_list+="\n\nStar Citizen shaders:\n$(cat "$conf_dir/$conf_subdir/$wine_conf")/$appdata_path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Lutris runners
|
||||||
|
if [ -d "$runners_dir_native" ] || [ -d "$runners_dir_flatpak" ]; then
|
||||||
|
dirs_list+="\n\nLutris Runners:"
|
||||||
|
if [ -d "$runners_dir_native" ]; then
|
||||||
|
dirs_list+="\n$runners_dir_native"
|
||||||
|
fi
|
||||||
|
if [ -d "$runners_dir_flatpak" ]; then
|
||||||
|
dirs_list+="\n$runners_dir_flatpak"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Lutris dxvk
|
||||||
|
if [ -d "$dxvk_dir_native" ] || [ -d "$dxvk_dir_flatpak" ]; then
|
||||||
|
dirs_list+="\n\nLutris DXVK Versions:"
|
||||||
|
if [ -d "$dxvk_dir_native" ]; then
|
||||||
|
dirs_list+="\n$dxvk_dir_native"
|
||||||
|
fi
|
||||||
|
if [ -d "$dxvk_dir_flatpak" ]; then
|
||||||
|
dirs_list+="\n$dxvk_dir_flatpak"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Format the info header
|
||||||
|
message_heading="These directories are currently being used by this Helper and Star Citizen"
|
||||||
|
if [ "$use_zenity" -eq 1 ]; then
|
||||||
|
message_heading="<b>$message_heading</b>"
|
||||||
|
fi
|
||||||
|
|
||||||
|
message info "$message_heading\n${dirs_list[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Display the LUG Wiki
|
||||||
|
display_wiki() {
|
||||||
|
# Display a message containing the URL
|
||||||
|
message info "See the Wiki for our Quick-Start Guide, Manual Installation instructions,\nPerformance Tuning, and Common Issues and Solutions:\n\n$lug_wiki"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Delete the helper's config directory
|
||||||
|
reset_helper() {
|
||||||
|
# Delete the shader directory
|
||||||
|
if message question "All config files will be deleted from:\n\n$conf_dir/$conf_subdir\n\nDo you want to proceed?"; then
|
||||||
|
debug_print continue "Deleting $conf_dir/$conf_subdir/*.conf..."
|
||||||
|
rm "$conf_dir/$conf_subdir/"*.conf
|
||||||
|
message info "The Helper has been reset!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Show maintenance/troubleshooting options
|
||||||
|
maintenance_menu() {
|
||||||
|
# Loop the menu until the user selects quit
|
||||||
|
looping_menu="true"
|
||||||
|
while [ "$looping_menu" = "true" ]; do
|
||||||
|
# Configure the menu
|
||||||
|
menu_text_zenity="<b><big>Game Maintenance and Troubleshooting</big></b>\n\nYou may choose from the following options:"
|
||||||
|
menu_text_terminal="Game Maintenance and Troubleshooting\n\nYou may choose from the following options:"
|
||||||
|
menu_text_height="100"
|
||||||
|
|
||||||
|
# Configure the menu options
|
||||||
|
version_msg="Switch the Helper between LIVE and PTU (Currently: $live_or_ptu)"
|
||||||
|
userdir_msg="Delete my Star Citizen USER folder and preserve my keybinds"
|
||||||
|
shaders_msg="Delete my shaders (Do this after each game update)"
|
||||||
|
vidcache_msg="Delete my DXVK cache"
|
||||||
|
dirs_msg="Display Helper and Star Citizen directories"
|
||||||
|
wiki_msg="Show the LUG Wiki"
|
||||||
|
reset_msg="Reset Helper configs"
|
||||||
|
quit_msg="Return to the main menu"
|
||||||
|
|
||||||
|
# Set the options to be displayed in the menu
|
||||||
|
menu_options=("$version_msg" "$userdir_msg" "$shaders_msg" "$vidcache_msg" "$dirs_msg" "$wiki_msg" "$reset_msg" "$quit_msg")
|
||||||
|
# Set the corresponding functions to be called for each of the options
|
||||||
|
menu_actions=("set_version" "rm_userdir" "rm_shaders" "rm_dxvkcache" "display_dirs" "display_wiki" "reset_helper" "menu_loop_done")
|
||||||
|
|
||||||
|
# Calculate the total height the menu should be
|
||||||
|
menu_height="$(($menu_option_height * ${#menu_options[@]} + $menu_text_height))"
|
||||||
|
|
||||||
|
# Set the label for the cancel button
|
||||||
|
cancel_label="Go Back"
|
||||||
|
|
||||||
|
# Call the menu function. It will use the options as configured above
|
||||||
|
menu
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
######## end maintenance functions #########################################
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Install Star Citizen using Lutris
|
||||||
|
install_game() {
|
||||||
|
# Check if Lutris is installed
|
||||||
|
lutris_detect
|
||||||
|
if [ "$lutris_installed" = "false" ]; then
|
||||||
|
message warning "Lutris is required but does not appear to be installed."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
# Check if the install script exists
|
||||||
|
if [ ! -f "$install_script" ]; then
|
||||||
|
message warning "Lutris install script not found.\n\n$install_script\n\nIt is included in our official releases here:\n$releases_url"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if message question "Before proceeding, please refer to our Quick Start Guide:\n\n$lug_wiki\n\nAre you ready to continue?"; then
|
||||||
|
# Detect which version of Lutris is installed
|
||||||
|
if [ "$lutris_native" = "true" ] && [ "$lutris_flatpak" = "true" ]; then
|
||||||
|
# Both versions of Lutris are installed so ask the user
|
||||||
|
if message options "Flatpak" "Native" "This Helper has detected both the Native and Flatpak versions of Lutris\nWhich version would you like to use?"; then
|
||||||
|
# Native version
|
||||||
|
install_version="native"
|
||||||
|
else
|
||||||
|
# Flatpak version
|
||||||
|
install_version="flatpak"
|
||||||
|
fi
|
||||||
|
elif [ "$lutris_native" = "true" ]; then
|
||||||
|
# Native version only
|
||||||
|
install_version="native"
|
||||||
|
elif [ "$lutris_flatpak" = "true" ]; then
|
||||||
|
# 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 --file-forwarding net.lutris.Lutris --install @@ "$install_script" @@ &
|
||||||
|
else
|
||||||
|
# We shouldn't get here
|
||||||
|
debug_print exit "Script error: Unknown condition for install_version in install_game() function. Aborting."
|
||||||
|
fi
|
||||||
|
message info "The installation will continue in Lutris"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Deploy Easy Anti-Cheat Workaround
|
# Deploy Easy Anti-Cheat Workaround
|
||||||
eac_workaround() {
|
eac_workaround() {
|
||||||
# Get/set directory paths
|
# Get/set directory paths
|
||||||
@ -1756,143 +1927,6 @@ eac_workaround() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install Star Citizen using Lutris
|
|
||||||
install_game() {
|
|
||||||
# Check if Lutris is installed
|
|
||||||
lutris_detect
|
|
||||||
if [ "$lutris_installed" = "false" ]; then
|
|
||||||
message warning "Lutris is required but does not appear to be installed."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
# Check if the install script exists
|
|
||||||
if [ ! -f "$install_script" ]; then
|
|
||||||
message warning "Lutris install script not found.\n\n$install_script\n\nIt is included in our official releases here:\n$releases_url"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if message question "Before proceeding, please refer to our Quick Start Guide:\n\n$lug_wiki\n\nAre you ready to continue?"; then
|
|
||||||
# Detect which version of Lutris is installed
|
|
||||||
if [ "$lutris_native" = "true" ] && [ "$lutris_flatpak" = "true" ]; then
|
|
||||||
# Both versions of Lutris are installed so ask the user
|
|
||||||
if message options "Flatpak" "Native" "This Helper has detected both the Native and Flatpak versions of Lutris\nWhich version would you like to use?"; then
|
|
||||||
# Native version
|
|
||||||
install_version="native"
|
|
||||||
else
|
|
||||||
# Flatpak version
|
|
||||||
install_version="flatpak"
|
|
||||||
fi
|
|
||||||
elif [ "$lutris_native" = "true" ]; then
|
|
||||||
# Native version only
|
|
||||||
install_version="native"
|
|
||||||
elif [ "$lutris_flatpak" = "true" ]; then
|
|
||||||
# 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 --file-forwarding net.lutris.Lutris --install @@ "$install_script" @@ &
|
|
||||||
else
|
|
||||||
# We shouldn't get here
|
|
||||||
debug_print exit "Script error: Unknown condition for install_version in install_game() function. Aborting."
|
|
||||||
fi
|
|
||||||
message info "The installation will continue in Lutris"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Display the LUG Wiki
|
|
||||||
display_wiki() {
|
|
||||||
# Display a message containing the URL
|
|
||||||
message info "See the Wiki for our Quick-Start Guide, Manual Installation instructions,\nPerformance Tuning, and Common Issues and Solutions:\n\n$lug_wiki"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Delete the shaders directory
|
|
||||||
rm_shaders() {
|
|
||||||
# Get/Set directory paths
|
|
||||||
getdirs
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
# User cancelled and wants to return to the main menu, or error
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Loop through all possible shader directories
|
|
||||||
for appdata_dir in "$shaders_dir"/*; do
|
|
||||||
if [ -d "$appdata_dir/$shaders_subdir" ]; then
|
|
||||||
# If a shaders directory is found, delete it
|
|
||||||
if message question "The following directory will be deleted:\n\n$appdata_dir/$shaders_subdir\n\nDo you want to proceed?"; then
|
|
||||||
debug_print continue "Deleting $appdata_dir/$shaders_subdir..."
|
|
||||||
rm -r "$appdata_dir/$shaders_subdir"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
message info "All shaders have been deleted"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Delete DXVK cache
|
|
||||||
rm_dxvkcache() {
|
|
||||||
# Get/Set directory paths
|
|
||||||
getdirs
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
# User cancelled and wants to return to the main menu
|
|
||||||
# or there was an error
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sanity check
|
|
||||||
if [ ! -f "$dxvk_cache" ]; then
|
|
||||||
message warning "Unable to find the DXVK cache file. There is nothing to delete!\n\n$dxvk_cache"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Delete the cache file
|
|
||||||
if message question "The following file will be deleted:\n\n$dxvk_cache\n\nDo you want to proceed?"; then
|
|
||||||
debug_print continue "Deleting $dxvk_cache..."
|
|
||||||
rm "$dxvk_cache"
|
|
||||||
message info "Your DXVK cache has been deleted!"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Show maintenance/troubleshooting options
|
|
||||||
maintenance_menu() {
|
|
||||||
# Loop the menu until the user selects quit
|
|
||||||
looping_menu="true"
|
|
||||||
while [ "$looping_menu" = "true" ]; do
|
|
||||||
# Configure the menu
|
|
||||||
menu_text_zenity="<b><big>Game Maintenance and Troubleshooting</big></b>\n\nYou may choose from the following options:"
|
|
||||||
menu_text_terminal="Game Maintenance and Troubleshooting\n\nYou may choose from the following options:"
|
|
||||||
menu_text_height="100"
|
|
||||||
|
|
||||||
# Configure the menu options
|
|
||||||
version_msg="Switch the Helper between LIVE and PTU (Currently: $live_or_ptu)"
|
|
||||||
userdir_msg="Delete my Star Citizen USER folder and preserve my keybinds"
|
|
||||||
shaders_msg="Delete my shaders (Do this after each game update)"
|
|
||||||
vidcache_msg="Delete my DXVK cache"
|
|
||||||
dirs_msg="Display Helper and Star Citizen directories"
|
|
||||||
wiki_msg="Show the LUG Wiki"
|
|
||||||
reset_msg="Reset Helper configs"
|
|
||||||
quit_msg="Return to the main menu"
|
|
||||||
|
|
||||||
# Set the options to be displayed in the menu
|
|
||||||
menu_options=("$version_msg" "$userdir_msg" "$shaders_msg" "$vidcache_msg" "$dirs_msg" "$wiki_msg" "$reset_msg" "$quit_msg")
|
|
||||||
# Set the corresponding functions to be called for each of the options
|
|
||||||
menu_actions=("set_version" "rm_userdir" "rm_shaders" "rm_dxvkcache" "display_dirs" "display_wiki" "reset_helper" "menu_loop_done")
|
|
||||||
|
|
||||||
# Calculate the total height the menu should be
|
|
||||||
menu_height="$(($menu_option_height * ${#menu_options[@]} + $menu_text_height))"
|
|
||||||
|
|
||||||
# Set the label for the cancel button
|
|
||||||
cancel_label="Go Back"
|
|
||||||
|
|
||||||
# Call the menu function. It will use the options as configured above
|
|
||||||
menu
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get a random Penguin's Star Citizen referral code
|
# Get a random Penguin's Star Citizen referral code
|
||||||
referral_randomizer() {
|
referral_randomizer() {
|
||||||
@ -1905,30 +1939,6 @@ referral_randomizer() {
|
|||||||
message info "Your random Penguin's referral code is:\n\n$random_code\n\nThank you!"
|
message info "Your random Penguin's referral code is:\n\n$random_code\n\nThank you!"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Toggle between the LIVE and PTU game directories for all Helper functions
|
|
||||||
set_version() {
|
|
||||||
if [ "$live_or_ptu" = "$live_dir" ]; then
|
|
||||||
live_or_ptu="$ptu_dir"
|
|
||||||
message info "The Helper will now target your Star Citizen PTU installation."
|
|
||||||
elif [ "$live_or_ptu" = "$ptu_dir" ]; then
|
|
||||||
live_or_ptu="$live_dir"
|
|
||||||
message info "The Helper will now target your Star Citizen LIVE installation."
|
|
||||||
else
|
|
||||||
debug_print continue "Unexpected game version provided. Defaulting to the LIVE installation."
|
|
||||||
live_or_ptu="$live_dir"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Delete the helper's config directory
|
|
||||||
reset_helper() {
|
|
||||||
# Delete the shader directory
|
|
||||||
if message question "All config files will be deleted from:\n\n$conf_dir/$conf_subdir\n\nDo you want to proceed?"; then
|
|
||||||
debug_print continue "Deleting $conf_dir/$conf_subdir/*.conf..."
|
|
||||||
rm "$conf_dir/$conf_subdir/"*.conf
|
|
||||||
message info "The Helper has been reset!"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get the latest release version of a repo. Expects "user/repo_name" as input
|
# Get the latest release version of a repo. Expects "user/repo_name" as input
|
||||||
# Credits for this go to https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
|
# Credits for this go to https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
|
||||||
get_latest_release() {
|
get_latest_release() {
|
||||||
|
Loading…
Reference in New Issue
Block a user