bazzite/system_files/desktop/shared/usr/bin/bazzite-flatpak-manager
RJ Trujillo 69ccbdea5a chore(flatpak-manager): Only remove flatpaks a single time
Someone may choose to install a flatpak on the removal list intentionally, in which
case we don't want to forcibly remove it

This verifies the version file exists following a successful run and skips the removal
process if it does
2023-12-16 07:52:02 -07:00

52 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Script Version
VER=9
VER_FILE="/etc/bazzite/flatpak_manager_version"
VER_RAN=$(cat $VER_FILE)
# Run script if updated
if [[ -f $VER_FILE && $VER = $VER_RAN ]]; then
echo "Flatpak manager v$VER has already ran. Exiting..."
exit 0
fi
# Opt out of and remove Fedora's flatpak repo
if grep -qz 'fedora' <<< $(flatpak remotes); then
/usr/lib/fedora-third-party/fedora-third-party-opt-out
/usr/bin/fedora-third-party disable
flatpak remote-delete fedora --force
fi
# Ensure Flathub is enabled
flatpak remote-modify --system --enable flathub
# Installed flatpaks
FLATPAK_LIST=$(flatpak list --columns=application)
# Flatpak list files
INSTALL_LIST_FILE="/usr/share/ublue-os/bazzite/flatpak/install"
REMOVE_LIST_FILE="/usr/share/ublue-os/bazzite/flatpak/remove"
# Install flatpaks in list
if [[ -f $INSTALL_LIST_FILE ]]; then
INSTALL_LIST=$(echo $FLATPAK_LIST | grep -vf - $INSTALL_LIST_FILE)
if [[ -n $INSTALL_LIST ]]; then
if ! flatpak install --system --noninteractive flathub ${INSTALL_LIST[@]}; then
# exit on error
exit 1
fi
fi
fi
# Remove flatpaks in list once
if [[ ! -f $VER_FILE && -f $REMOVE_LIST_FILE ]]; then
REMOVE_LIST=$(echo $FLATPAK_LIST | grep -f - $REMOVE_LIST_FILE)
if [[ -n $REMOVE_LIST ]]; then
flatpak remove --system --noninteractive ${REMOVE_LIST[@]}
fi
fi
mkdir -p /etc/bazzite
echo $VER > $VER_FILE