update installation script

This commit is contained in:
PancakeTAS 2025-07-13 18:39:21 +02:00
parent 0d19e15834
commit f998647d74
No known key found for this signature in database

View file

@ -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