From d4eacaeab3e771dd4e75f3ccc3d4334098629a4a Mon Sep 17 00:00:00 2001 From: JEEVITHA KANNAN K S Date: Fri, 1 Nov 2024 22:55:11 +0530 Subject: [PATCH] refact fix: Flatpak (#705) * Fix flatpak paths * Refact office suites flatpak * Merge flatpak_app_exists and command_exists * Fix binary path bug * Add apk pgm --------- Co-authored-by: Chris Titus --- .../Developer-tools/meld-setup.sh | 4 +- core/tabs/applications-setup/bottles-setup.sh | 12 ++--- .../communication-apps/slack-setup.sh | 4 +- .../communication-apps/zoom-setup.sh | 4 +- .../office-suites/libreoffice.sh | 4 +- .../office-suites/onlyoffice.sh | 4 +- .../office-suites/wpsoffice.sh | 4 +- core/tabs/applications-setup/setup-flatpak.sh | 44 +++---------------- core/tabs/common-script.sh | 36 +++++++++++++-- 9 files changed, 54 insertions(+), 62 deletions(-) diff --git a/core/tabs/applications-setup/Developer-tools/meld-setup.sh b/core/tabs/applications-setup/Developer-tools/meld-setup.sh index bd0bb3c2..031a09ae 100644 --- a/core/tabs/applications-setup/Developer-tools/meld-setup.sh +++ b/core/tabs/applications-setup/Developer-tools/meld-setup.sh @@ -3,7 +3,7 @@ . ../../common-script.sh installMeld() { - if ! command_exists meld; then + if ! command_exists org.gnome.meld && ! command_exists meld; then printf "%b\n" "${YELLOW}Installing Meld...${RC}" case "$PACKAGER" in pacman) @@ -13,7 +13,7 @@ installMeld() { "$ESCALATION_TOOL" "$PACKAGER" -y install meld ;; *) - . ../setup-flatpak.sh + checkFlatpak flatpak install -y flathub org.gnome.meld ;; esac diff --git a/core/tabs/applications-setup/bottles-setup.sh b/core/tabs/applications-setup/bottles-setup.sh index 02fef60b..0b29bedb 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 ! command_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 e4bf3719..24d6e532 100644 --- a/core/tabs/applications-setup/communication-apps/slack-setup.sh +++ b/core/tabs/applications-setup/communication-apps/slack-setup.sh @@ -3,14 +3,14 @@ . ../../common-script.sh installSlack() { - if ! command_exists slack; then + if ! command_exists com.slack.Slack && ! command_exists slack; then printf "%b\n" "${YELLOW}Installing Slack...${RC}" case "$PACKAGER" in pacman) "$AUR_HELPER" -S --needed --noconfirm slack-desktop ;; *) - . ../setup-flatpak.sh + checkFlatpak 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 acd5b180..19d7e407 100644 --- a/core/tabs/applications-setup/communication-apps/zoom-setup.sh +++ b/core/tabs/applications-setup/communication-apps/zoom-setup.sh @@ -3,14 +3,14 @@ . ../../common-script.sh installZoom() { - if ! command_exists zoom; then + if ! command_exists us.zoom.Zoom && ! command_exists zoom; then printf "%b\n" "${YELLOW}Installing Zoom...${RC}" case "$PACKAGER" in pacman) "$AUR_HELPER" -S --needed --noconfirm zoom ;; *) - . ../setup-flatpak.sh + checkFlatpak flatpak install -y flathub us.zoom.Zoom ;; esac diff --git a/core/tabs/applications-setup/office-suites/libreoffice.sh b/core/tabs/applications-setup/office-suites/libreoffice.sh index 165730c1..f389abd8 100644 --- a/core/tabs/applications-setup/office-suites/libreoffice.sh +++ b/core/tabs/applications-setup/office-suites/libreoffice.sh @@ -3,14 +3,14 @@ . ../../common-script.sh installLibreOffice() { - if ! command_exists libreoffice; then + if ! command_exists org.libreoffice.LibreOffice && ! command_exists libreoffice; then printf "%b\n" "${YELLOW}Installing Libre Office...${RC}" case "$PACKAGER" in apt-get|nala) "$ESCALATION_TOOL" "$PACKAGER" install -y libreoffice-core ;; zypper|dnf) - . ./setup-flatpak.sh + checkFlatpak flatpak install -y flathub org.libreoffice.LibreOffice ;; pacman) diff --git a/core/tabs/applications-setup/office-suites/onlyoffice.sh b/core/tabs/applications-setup/office-suites/onlyoffice.sh index 9e80fd31..f6fb97f6 100644 --- a/core/tabs/applications-setup/office-suites/onlyoffice.sh +++ b/core/tabs/applications-setup/office-suites/onlyoffice.sh @@ -3,7 +3,7 @@ . ../../common-script.sh installOnlyOffice() { - if ! command_exists onlyoffice-desktopeditors; then + if ! command_exists org.onlyoffice.desktopeditors && ! command_exists onlyoffice-desktopeditors; then printf "%b\n" "${YELLOW}Installing Only Office..${RC}." case "$PACKAGER" in apt-get|nala) @@ -11,7 +11,7 @@ installOnlyOffice() { "$ESCALATION_TOOL" "$PACKAGER" install -y ./onlyoffice-desktopeditors_amd64.deb ;; zypper|dnf) - . ./setup-flatpak.sh + checkFlatpak flatpak install -y flathub org.onlyoffice.desktopeditors ;; pacman) diff --git a/core/tabs/applications-setup/office-suites/wpsoffice.sh b/core/tabs/applications-setup/office-suites/wpsoffice.sh index 5e75e800..4ce1f5c5 100644 --- a/core/tabs/applications-setup/office-suites/wpsoffice.sh +++ b/core/tabs/applications-setup/office-suites/wpsoffice.sh @@ -3,14 +3,14 @@ . ../../common-script.sh installWpsOffice() { - if ! command_exists com.wps.Office; then + if ! command_exists com.wps.Office && ! command_exists wps; then printf "%b\n" "${YELLOW}Installing WPS Office...${RC}" case "$PACKAGER" in pacman) "$AUR_HELPER" -S --needed --noconfirm wps-office ;; *) - . ./setup-flatpak.sh + checkFlatpak flatpak install flathub com.wps.Office ;; esac 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 396f358d..7c205edd 100644 --- a/core/tabs/common-script.sh +++ b/core/tabs/common-script.sh @@ -9,10 +9,38 @@ CYAN='\033[36m' GREEN='\033[32m' command_exists() { - for cmd in "$@"; do - command -v "$cmd" >/dev/null 2>&1 || return 1 - done - return 0 +for cmd in "$@"; do + export PATH=/home/jeeva/.local/share/flatpak/exports/bin:/var/lib/flatpak/exports/bin:$PATH + command -v "$cmd" >/dev/null 2>&1 || return 1 +done +return 0 +} + +checkFlatpak() { + if ! command_exists flatpak; then + printf "%b\n" "${YELLOW}Installing Flatpak...${RC}" + case "$PACKAGER" in + pacman) + "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm flatpak + ;; + apk) + "$ESCALATION_TOOL" "$PACKAGER" add flatpak + ;; + *) + "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak + ;; + esac + printf "%b\n" "${YELLOW}Adding Flathub remote...${RC}" + "$ESCALATION_TOOL" flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + printf "%b\n" "${YELLOW}Applications installed by Flatpak may not appear on your desktop until the user session is restarted...${RC}" + 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() {