diff --git a/core/tabs/applications-setup/bottles-setup.sh b/core/tabs/applications-setup/bottles-setup.sh index 02fef60b..56b42d5b 100755 --- a/core/tabs/applications-setup/bottles-setup.sh +++ b/core/tabs/applications-setup/bottles-setup.sh @@ -3,14 +3,9 @@ . ../common-script.sh installBottles() { - if ! command_exists flatpak; then - printf "%b\n" "${YELLOW}Installing Bottles...${RC}" - case "$PACKAGER" in - *) - . ./setup-flatpak.sh - flatpak install -y flathub com.usebottles.bottles - ;; - esac + if ! flatpak_app_exists "com.usebottles.bottles"; then + printf "%b\n" "${YELLOW}Installing Bottles...${RC}" + flatpak install -y flathub com.usebottles.bottles else printf "%b\n" "${GREEN}Bottles is already installed.${RC}" fi @@ -18,4 +13,5 @@ installBottles() { checkEnv checkEscalationTool +checkFlatpak installBottles \ No newline at end of file diff --git a/core/tabs/applications-setup/communication-apps/slack-setup.sh b/core/tabs/applications-setup/communication-apps/slack-setup.sh index 5ecdd27f..0e6e6c54 100644 --- a/core/tabs/applications-setup/communication-apps/slack-setup.sh +++ b/core/tabs/applications-setup/communication-apps/slack-setup.sh @@ -2,15 +2,26 @@ . ../../common-script.sh +checkSlackInstallation() { + case "$PACKAGER" in + pacman) + command_exists slack + ;; + *) + checkFlatpak + flatpak_app_exists com.slack.Slack + ;; + esac +} + installSlack() { - if ! command_exists slack; then + if ! checkSlackInstallation; then printf "%b\n" "${YELLOW}Installing Slack...${RC}" case "$PACKAGER" in pacman) "$AUR_HELPER" -S --needed --noconfirm slack-desktop ;; *) - . ./setup-flatpak.sh flatpak install -y flathub com.slack.Slack ;; esac diff --git a/core/tabs/applications-setup/communication-apps/zoom-setup.sh b/core/tabs/applications-setup/communication-apps/zoom-setup.sh index 4b50013a..b3ace0d1 100644 --- a/core/tabs/applications-setup/communication-apps/zoom-setup.sh +++ b/core/tabs/applications-setup/communication-apps/zoom-setup.sh @@ -2,15 +2,26 @@ . ../../common-script.sh +checkZoomInstallation() { + case "$PACKAGER" in + pacman) + command_exists zoom + ;; + *) + checkFlatpak + flatpak_app_exists us.zoom.Zoom + ;; + esac +} + installZoom() { - if ! command_exists zoom; then + if ! checkZoomInstallation; then printf "%b\n" "${YELLOW}Installing Zoom...${RC}" case "$PACKAGER" in pacman) "$AUR_HELPER" -S --needed --noconfirm zoom ;; *) - . ./setup-flatpak.sh flatpak install -y flathub us.zoom.Zoom ;; esac diff --git a/core/tabs/applications-setup/office-suite-setup.sh b/core/tabs/applications-setup/office-suite-setup.sh index 61a08ebd..c999542d 100644 --- a/core/tabs/applications-setup/office-suite-setup.sh +++ b/core/tabs/applications-setup/office-suite-setup.sh @@ -200,4 +200,4 @@ officeSuiteSetup() { checkEnv checkEscalationTool checkAURHelper -officeSuiteSetup +officeSuiteSetup \ No newline at end of file diff --git a/core/tabs/applications-setup/setup-flatpak.sh b/core/tabs/applications-setup/setup-flatpak.sh index 75da28af..379467a6 100755 --- a/core/tabs/applications-setup/setup-flatpak.sh +++ b/core/tabs/applications-setup/setup-flatpak.sh @@ -2,9 +2,7 @@ . ../common-script.sh -# Used to detect the desktop environment, Only used for the If statement in the setup_flatpak function. -# Perhaps this should be moved to common-script.sh later on? -detect_de() { +checkDE() { if [ -n "$XDG_CURRENT_DESKTOP" ]; then case "$XDG_CURRENT_DESKTOP" in *GNOME*) @@ -17,42 +15,11 @@ detect_de() { fi } -# Install Flatpak if not already installed. -setup_flatpak() { - if ! command_exists flatpak; then - printf "%b\n" "${YELLOW}Installing Flatpak...${RC}" - case "$PACKAGER" in - pacman) - "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm flatpak - ;; - *) - "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak - ;; - esac - printf "%b\n" "Adding Flathub remote..." - "$ESCALATION_TOOL" flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - else - if command_exists flatpak; then - if ! flatpak remotes | grep -q "flathub"; then - printf "%b" "${YELLOW}Detected Flatpak package manager but Flathub remote is not added. Would you like to add it? (y/N): ${RC}" - read -r add_remote - case "$add_remote" in - [Yy]*) - printf "%b\n" "Adding Flathub remote..." - "$ESCALATION_TOOL" flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - ;; - esac - else - # Needed mostly for systems without a polkit agent running (Error: updating: Unable to connect to system bus) - printf "%b\n" "${GREEN}Flathub already setup. You can quit.${RC}" - fi - fi - fi - +installExtra() { if [ "$PACKAGER" = "apt-get" ] || [ "$PACKAGER" = "nala" ]; then - detect_de + checkDE # Only used for Ubuntu GNOME. Ubuntu GNOME doesnt allow flathub to be added as a remote to their store. - # So in case the user wants to use a GUI siftware manager they can setup it here + # So in case the user wants to use a GUI software manager they can setup it here if [ "$DE" = "GNOME" ]; then printf "%b" "${YELLOW}Detected GNOME desktop environment. Would you like to install GNOME Software plugin for Flatpak? (y/N): ${RC}" read -r install_gnome @@ -72,4 +39,5 @@ setup_flatpak() { checkEnv checkEscalationTool -setup_flatpak +checkFlatpak +installExtra \ No newline at end of file diff --git a/core/tabs/common-script.sh b/core/tabs/common-script.sh index 12ab1146..9d5bc2f4 100644 --- a/core/tabs/common-script.sh +++ b/core/tabs/common-script.sh @@ -12,6 +12,33 @@ command_exists() { command -v "$1" >/dev/null 2>&1 } +flatpak_app_exists() { + flatpak info "$1" >/dev/null 2>&1 +} + +checkFlatpak() { + if ! command_exists flatpak; then + printf "%b\n" "${YELLOW}Installing Flatpak...${RC}" + case "$PACKAGER" in + pacman) + "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm flatpak + ;; + *) + "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak + ;; + esac + printf "%b\n" "Adding Flathub remote..." + "$ESCALATION_TOOL" flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + else + if ! flatpak remotes | grep -q "flathub"; then + printf "%b\n" "${YELLOW}Adding Flathub remote...${RC}" + "$ESCALATION_TOOL" flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + else + printf "%b\n" "${CYAN}Flatpak is installed${RC}" + fi + fi +} + checkAURHelper() { ## Check & Install AUR helper if [ "$PACKAGER" = "pacman" ]; then