diff --git a/install.sh b/install.sh index ce50d05..a0cf107 100755 --- a/install.sh +++ b/install.sh @@ -3,13 +3,34 @@ : "${INSTALL_PATH:=$HOME/.local}" BASE_URL='https://pancake.gay/lsfg-vk' +# prompt for distro +echo "Which version would you like to install?" +echo "1) Arch Linux (Artix Linux, CachyOS, Steam Deck, etc.)" +echo "2) Debian" +echo "3) Ubuntu" +echo "4) Fedora" +printf "Enter the number (1-4): " +read -r version_choice < /dev/tty + +case "$version_choice" in + 1) DISTRO="archlinux"; DISTRO_PRETTY="Arch Linux" ;; + 2) DISTRO="debian"; DISTRO_PRETTY="Debian" ;; + 3) DISTRO="ubuntu"; DISTRO_PRETTY="Ubuntu" ;; + 4) DISTRO="fedora"; DISTRO_PRETTY="Fedora" ;; + *) echo "Invalid choice."; exit 1 ;; +esac + +ZIP_NAME="lsfg-vk_${DISTRO}.zip" +SHA_NAME="lsfg-vk_${DISTRO}.zip.sha" +SHA_FILE="$INSTALL_PATH/share/lsfg-vk.sha" + # get local and remote versions -REMOTE_HASH=$(curl -fsSL "$BASE_URL/lsfg-vk.zip.sha") -LOCAL_HASH=$(test -f "$INSTALL_PATH/share/lsfg-vk.sha" && cat "$INSTALL_PATH/share/lsfg-vk.sha") +REMOTE_HASH=$(curl -fsSL "$BASE_URL/$SHA_NAME") +LOCAL_HASH=$(test -f "$SHA_FILE" && cat "$SHA_FILE") if [ "$REMOTE_HASH" != "$LOCAL_HASH" ]; then # prompt user for confirmation - echo -n "Do you wish to install the latest version of lsfg-vk? (y/n) " + echo -n "Are you sure you want to install lsfg-vk for ${DISTRO_PRETTY}? (y/n) " read -r answer < /dev/tty if [ "$answer" != "y" ]; then @@ -18,7 +39,7 @@ if [ "$REMOTE_HASH" != "$LOCAL_HASH" ]; then fi # download lsfg-vk - curl -fsSL -o "/tmp/lsfg-vk.zip" "$BASE_URL/lsfg-vk.zip" + curl -fsSL -o "/tmp/$ZIP_NAME" "$BASE_URL/$ZIP_NAME" if [ $? -ne 0 ]; then echo "Failed to download lsfg-vk. Please check your internet connection." exit 1 @@ -26,10 +47,21 @@ if [ "$REMOTE_HASH" != "$LOCAL_HASH" ]; then # install lsfg-vk cd "$INSTALL_PATH" || exit 1 - unzip -oqq "/tmp/lsfg-vk.zip" - echo "$REMOTE_HASH" > share/lsfg-vk.sha + unzip -o "/tmp/$ZIP_NAME" + echo "$REMOTE_HASH" > "$SHA_FILE" + rm -v "/tmp/$ZIP_NAME" - echo "lsfg-vk has been installed." + echo "lsfg-vk for ${DISTRO_PRETTY} has been installed." else - echo "lsfg-vk is already up to date." + echo "lsfg-vk is up to date." + + # offer to uninstall + echo -n "Do you want to uninstall lsfg-vk? (y/n) " + read -r uninstall_answer < /dev/tty + if [ "$uninstall_answer" = "y" ]; then + rm -v ~/.local/lib/liblsfg-vk.so + rm -v ~/.local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json + rm -v "$SHA_FILE" + echo "Uninstallation completed." + fi fi