Compare commits
8 Commits
37a731bab6
...
testing
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
df6470e22f | ||
|
|
90fd40fb4a | ||
|
|
94d9caa707 | ||
|
|
17e7cac021 | ||
|
|
59d3d288da | ||
|
|
93f92b3c7b | ||
|
|
7548db668a | ||
|
|
502caea79c |
@@ -1,3 +1,3 @@
|
|||||||
check_dependencies git sox tt++
|
check_dependencies git sox tt++
|
||||||
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \
|
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
ui_progressbox "Game Installer" "Installing \"${game}\", please wait..."
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
check_dependencies git sox tt++
|
check_dependencies git sox tt++
|
||||||
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \
|
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
ui_progressbox "Game Installer" "Installing \"${game}\", please wait..."
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
check_dependencies git opusdec sox tt++
|
check_dependencies git opusdec sox tt++
|
||||||
git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \
|
git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
ui_progressbox "Game Installer" "Installing \"${game}\", please wait..."
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ tobyVersion="8-0"
|
|||||||
mkdir -p "${installPath}/doom"
|
mkdir -p "${installPath}/doom"
|
||||||
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)"
|
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)"
|
||||||
if [[ ${#doomPath} -lt 5 ]]; then
|
if [[ ${#doomPath} -lt 5 ]]; then
|
||||||
dialog --backtitle "Linux Game Manager" \
|
ui_yesno "Linux Game Manager" "Linux Game Manager" "Do you want Linux Game Manager to install freedoom and gzdoom for you? If you want to do this manually, select no." || exit 0
|
||||||
--yesno "Do you want Linux Game Manager to install freedoom and gzdoom for you? If you want to do this manually, select no." -1 -1 --stdout || exit 0
|
|
||||||
if command -v yay &> /dev/null ; then
|
if command -v yay &> /dev/null ; then
|
||||||
yay -Sy --noconfirm --sudoloop freedoom gzdoom freedm blasphemer-wad
|
yay -Sy --noconfirm --sudoloop freedoom gzdoom freedm blasphemer-wad
|
||||||
elif command -v slapt-src &> /dev/null ; then
|
elif command -v slapt-src &> /dev/null ; then
|
||||||
@@ -13,27 +12,22 @@ if [[ ${#doomPath} -lt 5 ]]; then
|
|||||||
sudo dnf -q -y install freedoom
|
sudo dnf -q -y install freedoom
|
||||||
sudo dnf -q -y install gzdoom
|
sudo dnf -q -y install gzdoom
|
||||||
else
|
else
|
||||||
dialog --backtitle "Linux Game Manager" --msgbox "No supported package managers found. Please install the freedoom and gzdoom packages manually." -1 -1
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "No supported package managers found. Please install the freedoom and gzdoom packages manually."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null | head -1)"
|
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null | head -1)"
|
||||||
if ! [[ -e "${installPath}/doom/DoomMetalVol6.wad" ]] && ! [[ -e "${installPath}/doom/DoomMetalVol7.wad" ]]; then
|
if ! [[ -e "${installPath}/doom/DoomMetalVol6.wad" ]] && ! [[ -e "${installPath}/doom/DoomMetalVol7.wad" ]]; then
|
||||||
alert
|
alert
|
||||||
dialog --backtitle "Linux Game manager" \
|
choice=$(ui_menu "Doom Metal Selection" "Doom Metal Selection" "Would you like Doom Metal Volume 6 or 7?" "6" "Doom Metal Volume 6" "7" "Doom Metal Volume 7" "none" "None")
|
||||||
--extra-button \
|
case "$choice" in
|
||||||
--yes-label "6" \
|
"6")
|
||||||
--no-label "7" \
|
download "${ipfsGateway}/ipfs/QmSzWKtP3wPvzn5GNd9F7n4RAhkFHxh2UHxXGefiAufwQW?filename=DoomMetalVol6.wad"
|
||||||
--extra-label "None" \
|
;;
|
||||||
--yesno "Would you like Doom Metal Volume 6 or 7? Use arrow keys to select your answer." \
|
"7")
|
||||||
-1 -1 --stdout
|
download "${ipfsGateway}/ipfs/QmfXkz3tzicKGfhcYSiWUZkjkDKP2aVp53Y49n127wMr7D?filename=DoomMetalVol7.wad"
|
||||||
buttonCode=$?
|
;;
|
||||||
if [[ $buttonCode -eq 0 ]]; then
|
esac
|
||||||
download "${ipfsGateway}/ipfs/QmSzWKtP3wPvzn5GNd9F7n4RAhkFHxh2UHxXGefiAufwQW?filename=DoomMetalVol6.wad"
|
|
||||||
fi
|
|
||||||
if [[ $buttonCode -eq 1 ]]; then
|
|
||||||
download "${ipfsGateway}/ipfs/QmfXkz3tzicKGfhcYSiWUZkjkDKP2aVp53Y49n127wMr7D?filename=DoomMetalVol7.wad"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
# The url breaks the normal download function
|
# The url breaks the normal download function
|
||||||
download_named "keyshare-universal.pk3" "https://forum.zdoom.org/download/file.php?id=42262"
|
download_named "keyshare-universal.pk3" "https://forum.zdoom.org/download/file.php?id=42262"
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
check_dependencies git sox tt++
|
check_dependencies git sox tt++
|
||||||
git -C "${installPath}/" clone --recurse-submodules https://github.com:hjozwiak/tintin-kallisti-pack | \
|
git -C "${installPath}/" clone --recurse-submodules https://github.com:hjozwiak/tintin-kallisti-pack | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
ui_progressbox "Game Installer" "Installing \"${game}\", please wait..."
|
||||||
|
|||||||
@@ -1,24 +1,21 @@
|
|||||||
check_architecture x86_64
|
check_architecture x86_64
|
||||||
alert
|
alert
|
||||||
dialog --backtitle "Linux Game manager" \
|
ui_msgbox "Game Installer" "Game Installer" "Please note this requires the game to be available either in your Steam library or as the installer purchased from gog.com.\n\nIf using the gog.com installer, please use the default path when prompted."
|
||||||
--msgbox \
|
installMethod=$(ui_menu "Installation Method" "Installation Method" "Select installation method" "gog" "GOG" "steam" "Steam")
|
||||||
"Please note this requires the game to be available either in your Steam library\nor as the installer purchased from gog.com.\nIf using the gog.com installer, please use the default path when prompted." -1 -1 --stdout
|
if [[ "$installMethod" == "steam" ]]; then
|
||||||
dialog --backtitle "Linux Game Manager" \
|
installationMethod=1
|
||||||
--yes-label "GOG" \
|
else
|
||||||
--no-label "Steam" \
|
installationMethod=0
|
||||||
--yesno "Select installation method" -1 -1 --stdout
|
fi
|
||||||
installationMethod=$?
|
|
||||||
appId="646570"
|
appId="646570"
|
||||||
gogFileName="slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh"
|
gogFileName="slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh"
|
||||||
if [[ $installMethod -eq 1 ]]; then
|
if [[ $installMethod -eq 1 ]]; then
|
||||||
# Steam Installation
|
# Steam Installation
|
||||||
check_dependencies steamcmd
|
check_dependencies steamcmd
|
||||||
echo "Please enter Steam user name:"
|
steamUser=$(ui_inputbox "Game Installer" "Game Installer" "Please enter Steam user name:" "")
|
||||||
read -er steamUser
|
|
||||||
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit
|
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
dialog --backtitle "Linux Game Manager" \
|
ui_msgbox "Game Installer" "Game Installer" "Error installing game through Steam."
|
||||||
--msgbox "Error installing game through Steam." -1 -1 --stdout
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -28,20 +25,17 @@ else
|
|||||||
DISPLAY="" find ~/Desktop -maxdepth 1 -type f -name "$gogFileName" -exec bash "{}" \;
|
DISPLAY="" find ~/Desktop -maxdepth 1 -type f -name "$gogFileName" -exec bash "{}" \;
|
||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" ||
|
ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" ||
|
||||||
{ dialog --backtitle "Linux Game Manager" \
|
{ ui_msgbox "Game Installer" "Game Installer" "Error creating link to game directory."
|
||||||
--msgbox "Error creating link to game directory." -1 -1 --stdout
|
|
||||||
exit 1; }
|
exit 1; }
|
||||||
else
|
else
|
||||||
dialog --backtitle "Linux Game Manager" \
|
ui_msgbox "Game Installer" "Game Installer" "Error installing game from GOG installer."
|
||||||
--msgbox "Error installing game from GOG installer." -1 -1 --stdout
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# Move files into place
|
# Move files into place
|
||||||
mkdir -p "${HOME}/.config/ModTheSpire"
|
mkdir -p "${HOME}/.config/ModTheSpire"
|
||||||
if [[ -f ~"/.config/ModTheSpire/mod_lists.json" ]]; then
|
if [[ -f ~"/.config/ModTheSpire/mod_lists.json" ]]; then
|
||||||
dialog --backtitle "Linux Game manager" \
|
ui_yesno "Game Installer" "Game Installer" "Existing mod_lists.json file found. Would you like to replace it?" &&
|
||||||
--yesno "Existing mod_lists.json file found. Would you like to replace it?" -1 -1 --stdout &&
|
|
||||||
cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
|
cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
|
||||||
else
|
else
|
||||||
cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
|
cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
|
||||||
@@ -62,8 +56,7 @@ for modId in ${modsMap[@]} ; do
|
|||||||
done
|
done
|
||||||
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit
|
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
dialog --backtitle "Linux Game Manager" \
|
ui_msgbox "Game Installer" "Game Installer" "Error installing required mods. Some accessibility features may not be available."
|
||||||
--msgbox "Error installing required mods. Some accessibility features may not be available." -1 -1 --stdout
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
mkdir -p "$HOME/.local/games/SlayTheSpire/mods"
|
mkdir -p "$HOME/.local/games/SlayTheSpire/mods"
|
||||||
@@ -74,8 +67,7 @@ for modName in "${!modsMap[@]}" ; do
|
|||||||
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/mods/"
|
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/mods/"
|
||||||
fi
|
fi
|
||||||
if [[ $? -ne 0 ]] && [[ "$modName" == "say the spire" ]]; then
|
if [[ $? -ne 0 ]] && [[ "$modName" == "say the spire" ]]; then
|
||||||
dialog --backtitle "Linux Game Manager" \
|
ui_msgbox "Game Installer" "Game Installer" "Error installing SayTheSpire mod. Screen reader support will not be available."
|
||||||
--msgbox "Error installing SayTheSpire mod. Screen reader support will not be available." -1 -1 --stdout
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
check_dependencies python-ansimarkup:ansimarkup
|
check_dependencies python-ansimarkup:ansimarkup
|
||||||
git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \
|
git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
ui_progressbox "Game Installer" "Installing \"${game}\", please wait..."
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
check_architecture x86_64
|
check_architecture x86_64
|
||||||
DISPLAY=""
|
DISPLAY=""
|
||||||
echo "Please select the default path when prompted by the installer."
|
|
||||||
alert
|
alert
|
||||||
|
ui_msgbox "Game Installer" "Game Installer" "Please select the default path when prompted by the installer."
|
||||||
get_installer "stardew_valley_1_5_6_1988831614_53040.sh" "https://www.gog.com/game/stardew_valley"
|
get_installer "stardew_valley_1_5_6_1988831614_53040.sh" "https://www.gog.com/game/stardew_valley"
|
||||||
bash "${cache}/stardew_valley_1_5_6_1988831614_53040.sh" ||
|
bash "${cache}/stardew_valley_1_5_6_1988831614_53040.sh" ||
|
||||||
{ echo "Error installing game."
|
{ ui_msgbox "Game Installer" "Game Installer" "Error installing game."
|
||||||
exit 1; }
|
exit 1; }
|
||||||
smapiVersion="3.18.4"
|
smapiVersion="3.18.4"
|
||||||
download "https://github.com/Pathoschild/SMAPI/releases/download/${smapiVersion}/SMAPI-${smapiVersion}-installer.zip" "https://stormgames.wolfe.casa/downloads/stardew-valley/Mods.tar.xz"
|
download "https://github.com/Pathoschild/SMAPI/releases/download/${smapiVersion}/SMAPI-${smapiVersion}-installer.zip" "https://stormgames.wolfe.casa/downloads/stardew-valley/Mods.tar.xz"
|
||||||
smapiTmp="$(mktemp -d)"
|
smapiTmp="$(mktemp -d)"
|
||||||
unzip "${cache}/SMAPI-${smapiVersion}-installer.zip" -d "$smapiTmp"
|
unzip "${cache}/SMAPI-${smapiVersion}-installer.zip" -d "$smapiTmp"
|
||||||
echo "Preparing to install mods. Please select the same path as before when prompted."
|
|
||||||
echo "When it says SMAPI has been installed, press enter to finish installation."
|
|
||||||
alert
|
alert
|
||||||
|
ui_msgbox "Game Installer" "Game Installer" "Preparing to install mods. Please select the same path as before when prompted.\n\nWhen it says SMAPI has been installed, press enter to finish installation."
|
||||||
bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh"
|
bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh"
|
||||||
ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley"
|
ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley"
|
||||||
tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/"
|
tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/"
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
check_dependencies git sox tt++
|
check_dependencies git sox tt++
|
||||||
git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \
|
git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
ui_progressbox "Game Installer" "Installing \"${game}\", please wait..."
|
||||||
|
|||||||
@@ -2,7 +2,5 @@ check_architecture x86_64
|
|||||||
get_installer "Ttc v3.2 linux.zip" "https://renzivan.itch.io/the-tornado-chicken"
|
get_installer "Ttc v3.2 linux.zip" "https://renzivan.itch.io/the-tornado-chicken"
|
||||||
unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.2 linux.zip"
|
unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.2 linux.zip"
|
||||||
chmod +x "${installPath}/The Tornado Chicken/Ttc"
|
chmod +x "${installPath}/The Tornado Chicken/Ttc"
|
||||||
echo "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice."
|
|
||||||
echo "You are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher."
|
|
||||||
echo "You may then press page up to set the music to your liking."
|
|
||||||
alert
|
alert
|
||||||
|
ui_msgbox "Game Installer" "Game Installer" "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice.\n\nYou are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher.\n\nYou may then press page up to set the music to your liking."
|
||||||
|
|||||||
@@ -3,5 +3,5 @@ check_dependencies dmidecode
|
|||||||
get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval"
|
get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval"
|
||||||
mkdir -p "${installPath}/Upheaval_Gui"
|
mkdir -p "${installPath}/Upheaval_Gui"
|
||||||
unzip -d "${installPath}/Upheaval_Gui" "${cache}/upheaval-linux.zip"
|
unzip -d "${installPath}/Upheaval_Gui" "${cache}/upheaval-linux.zip"
|
||||||
echo "To enable accessibility, press shift t when the game starts."
|
|
||||||
alert
|
alert
|
||||||
|
ui_msgbox "Game Installer" "Game Installer" "To enable accessibility, press shift t when the game starts."
|
||||||
|
|||||||
@@ -2,7 +2,5 @@ check_architecture x86_64
|
|||||||
get_installer "Wp v3.0 linux.zip" "https://psyra-productions.itch.io/wheels-of-prio"
|
get_installer "Wp v3.0 linux.zip" "https://psyra-productions.itch.io/wheels-of-prio"
|
||||||
unzip -d "${installPath}/Wheels of Prio" "${cache}/Wp v3.0 linux.zip"
|
unzip -d "${installPath}/Wheels of Prio" "${cache}/Wp v3.0 linux.zip"
|
||||||
chmod +x "${installPath}/Wheels of Prio/Wp"
|
chmod +x "${installPath}/Wheels of Prio/Wp"
|
||||||
echo "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice."
|
|
||||||
echo "You are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher."
|
|
||||||
echo "You may then press page up to set the music to your liking."
|
|
||||||
alert
|
alert
|
||||||
|
ui_msgbox "Game Installer" "Game Installer" "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice.\n\nYou are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher.\n\nYou may then press page up to set the music to your liking."
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ if [[ "${architecture}" == "aarch64" ]]; then
|
|||||||
elif [[ "${architecture}" == "x86_64" ]]; then
|
elif [[ "${architecture}" == "x86_64" ]]; then
|
||||||
pkgname="Zombowl-Linux-X86_64.zip"
|
pkgname="Zombowl-Linux-X86_64.zip"
|
||||||
else
|
else
|
||||||
echo "Architecture ${architecture} is not supported."
|
ui_msgbox "Game Installer" "Game Installer" "Architecture ${architecture} is not supported."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
|
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
|
||||||
|
|||||||
@@ -122,12 +122,12 @@ ui_msgbox() {
|
|||||||
local text="$3"
|
local text="$3"
|
||||||
|
|
||||||
if [[ "$dialog_type" == "yad" ]]; then
|
if [[ "$dialog_type" == "yad" ]]; then
|
||||||
yad --info \
|
echo -e "$text" | yad --text-info \
|
||||||
--title="$title" \
|
--title="$title" \
|
||||||
--text="$text" \
|
|
||||||
--selectable-labels \
|
|
||||||
--show-cursor \
|
--show-cursor \
|
||||||
--width=400
|
--button="OK:0" \
|
||||||
|
--width=600 \
|
||||||
|
--height=400
|
||||||
else
|
else
|
||||||
dialog --backtitle "$back_title" \
|
dialog --backtitle "$back_title" \
|
||||||
--title "$title" \
|
--title "$title" \
|
||||||
@@ -183,14 +183,102 @@ ui_progressbox() {
|
|||||||
local text="$2"
|
local text="$2"
|
||||||
|
|
||||||
if [[ "$dialog_type" == "yad" ]]; then
|
if [[ "$dialog_type" == "yad" ]]; then
|
||||||
|
# Start audio feedback for accessibility
|
||||||
|
local beep_pid
|
||||||
|
local yad_pid
|
||||||
|
|
||||||
|
# Cleanup function for traps
|
||||||
|
cleanup_progress() {
|
||||||
|
[[ -n "$beep_pid" ]] && kill "$beep_pid" 2>/dev/null
|
||||||
|
[[ -n "$yad_pid" ]] && kill "$yad_pid" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set trap to ensure cleanup on interruption
|
||||||
|
trap cleanup_progress EXIT INT TERM
|
||||||
|
|
||||||
|
if command -v sox >/dev/null 2>&1; then
|
||||||
|
{
|
||||||
|
while true; do
|
||||||
|
# Generate a short, pleasant progress beep (440Hz for 0.1s)
|
||||||
|
sox -q -n -d synth 0.1 sine 440 vol 0.3 2>/dev/null
|
||||||
|
sleep 2 # Beep every 2 seconds
|
||||||
|
done
|
||||||
|
} &
|
||||||
|
beep_pid=$!
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start visual progress dialog with auto-close
|
||||||
yad --progress \
|
yad --progress \
|
||||||
--title="$title" \
|
--title="$title" \
|
||||||
--text="$text" \
|
--text="$text" \
|
||||||
--pulsate \
|
|
||||||
--auto-close \
|
--auto-close \
|
||||||
--no-buttons \
|
--pulsate \
|
||||||
--show-cursor \
|
--width=400 \
|
||||||
--width=400
|
--height=100 &
|
||||||
|
yad_pid=$!
|
||||||
|
|
||||||
|
# Process command output
|
||||||
|
local line_count=0
|
||||||
|
while IFS= read -r line; do
|
||||||
|
((line_count++))
|
||||||
|
done < <(stdbuf -oL cat)
|
||||||
|
|
||||||
|
# Clean up background processes
|
||||||
|
cleanup_progress
|
||||||
|
trap - EXIT INT TERM # Remove traps
|
||||||
|
else
|
||||||
|
dialog --title "$title" \
|
||||||
|
--progressbox "$text" 20 70
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Simple progress box that just shows the operation is running (no command output)
|
||||||
|
# Usage: command | ui_simple_progressbox "title" "text"
|
||||||
|
ui_simple_progressbox() {
|
||||||
|
local title="$1"
|
||||||
|
local text="$2"
|
||||||
|
|
||||||
|
if [[ "$dialog_type" == "yad" ]]; then
|
||||||
|
# Start audio feedback for accessibility
|
||||||
|
local beep_pid
|
||||||
|
local yad_pid
|
||||||
|
|
||||||
|
# Cleanup function for traps
|
||||||
|
cleanup_simple_progress() {
|
||||||
|
[[ -n "$beep_pid" ]] && kill "$beep_pid" 2>/dev/null
|
||||||
|
[[ -n "$yad_pid" ]] && kill "$yad_pid" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set trap to ensure cleanup on interruption
|
||||||
|
trap cleanup_simple_progress EXIT INT TERM
|
||||||
|
|
||||||
|
if command -v sox >/dev/null 2>&1; then
|
||||||
|
{
|
||||||
|
while true; do
|
||||||
|
# Generate a short, pleasant progress beep (440Hz for 0.1s)
|
||||||
|
sox -q -n -d synth 0.1 sine 440 vol 0.3 2>/dev/null
|
||||||
|
sleep 2 # Beep every 2 seconds
|
||||||
|
done
|
||||||
|
} &
|
||||||
|
beep_pid=$!
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Show progress dialog with pulsating
|
||||||
|
yad --progress \
|
||||||
|
--title="$title" \
|
||||||
|
--text="$text" \
|
||||||
|
--auto-close \
|
||||||
|
--pulsate \
|
||||||
|
--width=400 \
|
||||||
|
--height=100 &
|
||||||
|
yad_pid=$!
|
||||||
|
|
||||||
|
# Read from stdin and discard, but keep dialogs open until command finishes
|
||||||
|
cat > /dev/null
|
||||||
|
|
||||||
|
# Clean up background processes
|
||||||
|
cleanup_simple_progress
|
||||||
|
trap - EXIT INT TERM # Remove traps
|
||||||
else
|
else
|
||||||
dialog --title "$title" \
|
dialog --title "$title" \
|
||||||
--progressbox "$text" 20 70
|
--progressbox "$text" 20 70
|
||||||
@@ -199,24 +287,46 @@ ui_progressbox() {
|
|||||||
|
|
||||||
# Check for updates
|
# Check for updates
|
||||||
check_update() {
|
check_update() {
|
||||||
local url="$(git ls-remote --get-url)"
|
if ! [[ -d ".git" ]]; then
|
||||||
if [[ "$url" =~ ^[[:alnum:]]+@ ]] || [[ -z "$url" ]]; then
|
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
git remote update > /dev/null 2>&1
|
local url
|
||||||
|
url="$(git ls-remote --get-url)"
|
||||||
|
if [[ "$url" =~ ^ssh://|git@|gitea@ ]] || [[ -z "$url" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
git remote update &> /dev/null
|
||||||
local upstream='@{u}'
|
local upstream='@{u}'
|
||||||
local home="$(git rev-parse @)"
|
local home
|
||||||
local remote="$(git rev-parse "$upstream")"
|
local remote
|
||||||
|
home="$(git rev-parse @)"
|
||||||
|
remote="$(git rev-parse "$upstream")"
|
||||||
if [[ "$home" == "$remote" ]]; then
|
if [[ "$home" == "$remote" ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
ui_yesno "Linux Game Manager" "Linux Game manager" "Updates are available. Would you like to update now?" || return
|
ui_yesno "Linux Game Manager" "Linux Game Manager" "Updates are available. Would you like to update now?" || return
|
||||||
# Store the current commit before pulling
|
|
||||||
local beforePull=$(git rev-parse HEAD)
|
# Perform git pull quietly, then show only the important changes
|
||||||
git pull
|
local update_result
|
||||||
# Show changes between the stored commit and current HEAD
|
git pull --quiet >/dev/null 2>&1
|
||||||
git log "$beforePull..HEAD" --pretty=format:'%an: %s' | tac
|
update_result=$?
|
||||||
exit $?
|
|
||||||
|
# Get the important information: commit messages and summary
|
||||||
|
local changes_summary
|
||||||
|
changes_summary=$({
|
||||||
|
echo "UPDATE COMPLETED"
|
||||||
|
echo
|
||||||
|
echo "Recent changes:"
|
||||||
|
git log '@{1}..' --pretty=format:'• %an: %s' | tac
|
||||||
|
echo
|
||||||
|
echo "Update summary:"
|
||||||
|
git diff --stat '@{1}..' | tail -1
|
||||||
|
} 2>/dev/null)
|
||||||
|
|
||||||
|
# Show only the meaningful update information
|
||||||
|
ui_msgbox "Update Complete" "Linux Game Manager" "$changes_summary"
|
||||||
|
|
||||||
|
exit $update_result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -251,11 +361,11 @@ check_dependencies() {
|
|||||||
if [[ "${#dependencies[@]}" -eq 0 ]]; then
|
if [[ "${#dependencies[@]}" -eq 0 ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
echo "missing dependencies. Please install the following:"
|
local missing_deps="missing dependencies. Please install the following:\n\n"
|
||||||
echo
|
|
||||||
for i in "${dependencies[@]}" ; do
|
for i in "${dependencies[@]}" ; do
|
||||||
echo "$i"
|
missing_deps+="$i\n"
|
||||||
done
|
done
|
||||||
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "$missing_deps"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -274,10 +384,11 @@ terminal_emulator() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "No suitable terminal emulators found, please install one of:"
|
local terminal_msg="No suitable terminal emulators found, please install one of:\n\n"
|
||||||
for i in "${terminals[@]}" ; do
|
for i in "${terminals[@]}" ; do
|
||||||
echo "$i"
|
terminal_msg+="$i\n"
|
||||||
done
|
done
|
||||||
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "$terminal_msg"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to open urls
|
# Function to open urls
|
||||||
@@ -289,7 +400,7 @@ open_url() {
|
|||||||
desktop_launcher() {
|
desktop_launcher() {
|
||||||
local desktopFile="${HOME}/linux-game-manager.desktop"
|
local desktopFile="${HOME}/linux-game-manager.desktop"
|
||||||
if [[ -e "${desktopFile}" ]]; then
|
if [[ -e "${desktopFile}" ]]; then
|
||||||
echo "the file ${desktopFile} exists. Cannot create the launcher."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "The file ${desktopFile} exists. Cannot create the launcher."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
local dotDesktop
|
local dotDesktop
|
||||||
@@ -324,28 +435,20 @@ desktop_launcher() {
|
|||||||
# Alerts, for when user needs to read something.
|
# Alerts, for when user needs to read something.
|
||||||
alert() {
|
alert() {
|
||||||
play -qnV0 synth 3 pluck D3 pluck A3 pluck D4 pluck F4 pluck A4 delay 0 .1 .2 .3 .4 remix - chorus 0.9 0.9 38 0.75 0.3 0.5 -t
|
play -qnV0 synth 3 pluck D3 pluck A3 pluck D4 pluck F4 pluck A4 delay 0 .1 .2 .3 .4 remix - chorus 0.9 0.9 38 0.75 0.3 0.5 -t
|
||||||
echo
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "Press OK to continue."
|
||||||
read -rp "Press enter to continue." continue
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clear_cache() {
|
clear_cache() {
|
||||||
local answer
|
|
||||||
if [[ ! -d "${cache}" ]]; then
|
if [[ ! -d "${cache}" ]]; then
|
||||||
echo "No cache found at ${cache}."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "No cache found at ${cache}."
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
while ! [[ "${answer,,}" =~ ^yes$|^no$ ]]; do
|
if ! ui_yesno "Linux Game Manager" "Linux Game Manager" "This will delete all contents of ${cache}. Are you sure you want to continue?"; then
|
||||||
echo "This will delete all contents of ${cache}. Are you sure you want to continue?"
|
|
||||||
echo "Please type yes or no."
|
|
||||||
echo
|
|
||||||
read -r answer
|
|
||||||
done
|
|
||||||
if [[ "$answer" == "no" ]]; then
|
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
# All safety checks done. Delete the cache.
|
# All safety checks done. Delete the cache.
|
||||||
rm -rfv "${cache}"
|
rm -rfv "${cache}" | ui_progressbox "Linux Game Manager" "Clearing cache..."
|
||||||
echo "Cache deleted."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "Cache deleted."
|
||||||
}
|
}
|
||||||
|
|
||||||
download() {
|
download() {
|
||||||
@@ -363,7 +466,7 @@ download() {
|
|||||||
# Skip if the item is in cache.
|
# Skip if the item is in cache.
|
||||||
[[ -e "${cache}/${dest}" ]] && continue
|
[[ -e "${cache}/${dest}" ]] && continue
|
||||||
{ if ! curl -L4 -C - --retry 10 --output "${cache}/${dest}" "${i}" ; then
|
{ if ! curl -L4 -C - --retry 10 --output "${cache}/${dest}" "${i}" ; then
|
||||||
echo "Could not download \"$i\"..."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "Could not download \"$i\"..."
|
||||||
exit 1
|
exit 1
|
||||||
fi; } | ui_progressbox "Linux Game Manager" "Downloading \"$dest\" from \"$i\""
|
fi; } | ui_progressbox "Linux Game Manager" "Downloading \"$dest\" from \"$i\""
|
||||||
local downloadError=1
|
local downloadError=1
|
||||||
@@ -408,6 +511,10 @@ download_named() {
|
|||||||
# Required arguments: filename url
|
# Required arguments: filename url
|
||||||
# Only works with one file at a time.
|
# Only works with one file at a time.
|
||||||
local dest="$1"
|
local dest="$1"
|
||||||
|
# Validate arguments
|
||||||
|
if [[ -z "$dest" ]] || [[ -z "$2" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
# Remove the destination file if it is empty.
|
# Remove the destination file if it is empty.
|
||||||
test -s "${cache}/${dest}" || rm -f "${cache}/${dest}" 2> /dev/null
|
test -s "${cache}/${dest}" || rm -f "${cache}/${dest}" 2> /dev/null
|
||||||
if [[ "${redownload}" == "true" ]] && [[ -e "${cache}/${dest}" ]]; then
|
if [[ "${redownload}" == "true" ]] && [[ -e "${cache}/${dest}" ]]; then
|
||||||
@@ -416,7 +523,7 @@ download_named() {
|
|||||||
# Skip if the item is in cache.
|
# Skip if the item is in cache.
|
||||||
test -e "${cache}/${dest}" && return
|
test -e "${cache}/${dest}" && return
|
||||||
if ! curl -L4 --output "${cache}/${dest}" "${2}" ; then
|
if ! curl -L4 --output "${cache}/${dest}" "${2}" ; then
|
||||||
echo "Could not download \"$dest\"..."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "Could not download \"$dest\"..."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -436,7 +543,6 @@ get_installer() {
|
|||||||
if echo "$2" | xclip -selection clipboard 2> /dev/null ; then
|
if echo "$2" | xclip -selection clipboard 2> /dev/null ; then
|
||||||
message+="\n\nThe URL has been copied to the clipboard."
|
message+="\n\nThe URL has been copied to the clipboard."
|
||||||
fi
|
fi
|
||||||
echo "Manual intervention required..."
|
|
||||||
alert
|
alert
|
||||||
ui_msgbox "Linux Game Manager" "Linux Game Manager" "$message"
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "$message"
|
||||||
# Search the Desktop and Downloads directories for the installation file
|
# Search the Desktop and Downloads directories for the installation file
|
||||||
@@ -445,38 +551,41 @@ get_installer() {
|
|||||||
done
|
done
|
||||||
# If the file is still not available abort.
|
# If the file is still not available abort.
|
||||||
if [[ ! -f "${cache}/$1" ]]; then
|
if [[ ! -f "${cache}/$1" ]]; then
|
||||||
echo "couldn't find $1. Please download the file and try again."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "Couldn't find $1. Please download the file and try again."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
echo "${0##*/}"
|
local help_text="${0##*/}\nReleased under the terms of the Common Public Attribution License Version 1.0\nThis is a Stormux project: https://stormux.org\n\nUsage:\n\nWith no arguments, open the game launcher.\n\n"
|
||||||
echo "Released under the terms of the Common Public Attribution License Version 1.0"
|
|
||||||
echo -e "This is a Stormux project: https://stormux.org\n"
|
# Add command options
|
||||||
echo -e "Usage:\n"
|
|
||||||
echo "With no arguments, open the game launcher."
|
|
||||||
for i in "${!command[@]}" ; do
|
for i in "${!command[@]}" ; do
|
||||||
echo "-${i/:/ <parameter>}: ${command[${i}]}"
|
help_text+="-${i/:/ <parameter>}: ${command[${i}]}\n"
|
||||||
done | sort
|
done
|
||||||
echo
|
|
||||||
echo "Some settings that are often used can be stored in a settings.conf file."
|
help_text+="\nSome settings that are often used can be stored in a settings.conf file.\nIf wanted, place it at the following location:\n${configFile%/*}/settings.conf\nThe syntax is variable=\"value\"\n\n"
|
||||||
echo "If wanted, place it at the following location:"
|
help_text+="doomLanguage=\"en\" # 2 letter language code for translation.\n"
|
||||||
echo "${configFile%/*}/settings.conf"
|
help_text+="ipfsGateway=\"https://ipfs.stormux.org\" # Gateway to be used for ipfs downloads.\n"
|
||||||
echo "The syntax is variable=\"value\""
|
help_text+="noCache=\"true\" # Do not keep downloaded items in the cache.\n"
|
||||||
echo
|
help_text+="spd_module=<module_name>\" # set speech-dispatcher module.\n"
|
||||||
echo "doomLanguage=\"en\" # 2 letter language code for translation."
|
help_text+="spd_pitch=<number>\" # set speech-dispatcher speech pitch.\n"
|
||||||
echo "ipfsGateway=\"https://ipfs.stormux.org\" # Gateway to be used for ipfs downloads."
|
help_text+="spd_rate=<number>\" # set speech-dispatcher speech rate.\n"
|
||||||
echo "noCache=\"true\" # Do not keep downloaded items in the cache."
|
help_text+="spd_voice=<voice_name>\" # set speech-dispatcher voice. Be sure module is correct.\n"
|
||||||
echo "spd_module=\<module_name>\" # set speech-dispatcher module."
|
help_text+="spd_volume=<number>\" # set speech-dispatcher speech volume.\n\n"
|
||||||
echo "spd_pitch=\<number>\" # set speech-dispatcher speech pitch."
|
help_text+="INSTALLER SCRIPT DIALOG FUNCTIONS:\n"
|
||||||
echo "spd_rate=\<number>\" # set speech-dispatcher speech rate."
|
help_text+="ui_msgbox \"title\" \"backtitle\" \"message\" - Show information message\n"
|
||||||
echo "spd_voice=\<voice_name>\" # set speech-dispatcher voice. Be sure module is correct."
|
help_text+="ui_yesno \"title\" \"backtitle\" \"question\" - Ask yes/no question\n"
|
||||||
echo "spd_volume=\<number>\" # set speech-dispatcher speech volume."
|
help_text+="ui_inputbox \"title\" \"backtitle\" \"prompt\" \"default\" - Get text input\n"
|
||||||
|
help_text+="ui_menu \"title\" \"backtitle\" \"prompt\" option1 \"desc1\" ... - Show menu\n"
|
||||||
|
help_text+="ui_progressbox \"title\" \"text\" - Progress dialog for piped commands"
|
||||||
|
|
||||||
|
ui_msgbox "Linux Game Manager Help" "Linux Game Manager" "$help_text"
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# main script
|
# main script
|
||||||
|
|
||||||
|
|
||||||
@@ -507,7 +616,7 @@ game_installer() {
|
|||||||
done
|
done
|
||||||
# If all games are installed, exit
|
# If all games are installed, exit
|
||||||
if [[ ${#menuList[@]} -eq 0 ]]; then
|
if [[ ${#menuList[@]} -eq 0 ]]; then
|
||||||
echo "All games are already installed."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "All games are already installed."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
# Add donation option at the end
|
# Add donation option at the end
|
||||||
@@ -515,6 +624,9 @@ game_installer() {
|
|||||||
# Show game selection dialog
|
# Show game selection dialog
|
||||||
game="$(ui_menu "Game Installer" "Game Installer" "Please select a game to install" "${menuList[@]}")"
|
game="$(ui_menu "Game Installer" "Game Installer" "Please select a game to install" "${menuList[@]}")"
|
||||||
# Handle selection
|
# Handle selection
|
||||||
|
if [[ -z "$game" ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
if [[ -n "$game" ]]; then
|
if [[ -n "$game" ]]; then
|
||||||
if [[ "$game" == "Donate" ]]; then
|
if [[ "$game" == "Donate" ]]; then
|
||||||
open_url "https://ko-fi.com/stormux"
|
open_url "https://ko-fi.com/stormux"
|
||||||
@@ -526,6 +638,8 @@ game_installer() {
|
|||||||
if [[ -f "$installScript" ]]; then
|
if [[ -f "$installScript" ]]; then
|
||||||
# Source and execute the install script
|
# Source and execute the install script
|
||||||
source "$installScript"
|
source "$installScript"
|
||||||
|
# Show success message
|
||||||
|
ui_msgbox "Game Installer" "Game Installer" "${game} has been installed."
|
||||||
else
|
else
|
||||||
ui_msgbox "Game Installer" "Game Installer" "Installation script not found for ${game}"
|
ui_msgbox "Game Installer" "Game Installer" "Installation script not found for ${game}"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -580,6 +694,8 @@ game_removal() {
|
|||||||
# Remove only the .sh symlink
|
# Remove only the .sh symlink
|
||||||
rm -fv "${0%/*}/.launch/${gameName}.sh" | \
|
rm -fv "${0%/*}/.launch/${gameName}.sh" | \
|
||||||
ui_progressbox "Linux Game Manager" "Removing game from list..."
|
ui_progressbox "Linux Game Manager" "Removing game from list..."
|
||||||
|
# Show success message
|
||||||
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "${gameName} has been removed from the list."
|
||||||
else
|
else
|
||||||
# Found install path, can remove game files
|
# Found install path, can remove game files
|
||||||
ui_yesno "Linux Game Manager" "Linux Game Manager" "This will remove the directory \"${gameInstallPath}\" and all of its contents. Do you want to continue?" || exit 0
|
ui_yesno "Linux Game Manager" "Linux Game Manager" "This will remove the directory \"${gameInstallPath}\" and all of its contents. Do you want to continue?" || exit 0
|
||||||
@@ -587,6 +703,8 @@ game_removal() {
|
|||||||
{ rm -rfv "${gameInstallPath}"
|
{ rm -rfv "${gameInstallPath}"
|
||||||
rm -fv "${0%/*}/.launch/${gameName}.sh";
|
rm -fv "${0%/*}/.launch/${gameName}.sh";
|
||||||
} | ui_progressbox "Linux Game Manager" "Removing game..."
|
} | ui_progressbox "Linux Game Manager" "Removing game..."
|
||||||
|
# Show success message
|
||||||
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "${gameName} has been removed."
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
@@ -596,7 +714,7 @@ game_removal() {
|
|||||||
game_update() {
|
game_update() {
|
||||||
mapfile -t lines < <(find .update -type f -iname '*.sh' 2> /dev/null)
|
mapfile -t lines < <(find .update -type f -iname '*.sh' 2> /dev/null)
|
||||||
if [[ ${#lines} -eq 0 ]]; then
|
if [[ ${#lines} -eq 0 ]]; then
|
||||||
echo "No games found."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "No games found."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
# Create the menu of updatable games
|
# Create the menu of updatable games
|
||||||
@@ -616,11 +734,16 @@ game_update() {
|
|||||||
open_url "https://2mb.games/product/2mb-patron/"
|
open_url "https://2mb.games/product/2mb-patron/"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
# Get the game name for success message
|
||||||
|
local updateGameName="${game##*/}"
|
||||||
|
updateGameName="${updateGameName%.sh}"
|
||||||
source "${game}"
|
source "${game}"
|
||||||
else
|
else
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
run_update
|
run_update
|
||||||
|
# Show success message
|
||||||
|
ui_msgbox "Audio Game Updater" "Audio Game Updater" "${updateGameName} has been updated."
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -719,11 +842,12 @@ requiredPackages=(
|
|||||||
"7z"
|
"7z"
|
||||||
"curl"
|
"curl"
|
||||||
"dialog"
|
"dialog"
|
||||||
|
"yad"
|
||||||
"unzip"
|
"unzip"
|
||||||
)
|
)
|
||||||
for i in "${requiredPackages[@]}" ; do
|
for i in "${requiredPackages[@]}" ; do
|
||||||
if ! command -v $i > /dev/null 2>&1 ; then
|
if ! command -v "$i" > /dev/null 2>&1 ; then
|
||||||
echo "Please install ${i/7z/p7zip} before continuing."
|
ui_msgbox "Linux Game Manager" "Linux Game Manager" "Please install ${i/7z/p7zip} before continuing."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user