2024-09-19 17:56:21 +01:00
|
|
|
#!/bin/sh -e
|
|
|
|
|
|
|
|
. ../common-script.sh
|
|
|
|
|
|
|
|
install_chrome() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists google-chrome; then
|
2024-09-22 18:59:39 +01:00
|
|
|
printf "%b\n" "${YELLOW}Installing Google Chrome..${RC}."
|
2024-09-20 15:43:08 +01:00
|
|
|
case "$PACKAGER" in
|
|
|
|
apt-get|nala)
|
|
|
|
curl -O https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
2024-09-22 18:34:52 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y ./google-chrome-stable_current_amd64.deb
|
2024-09-20 15:43:08 +01:00
|
|
|
;;
|
|
|
|
zypper)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" addrepo http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" refresh
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install google-chrome-stable
|
|
|
|
;;
|
|
|
|
pacman)
|
|
|
|
"$AUR_HELPER" -S --noconfirm google-chrome
|
|
|
|
;;
|
|
|
|
dnf)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y fedora-workstation-repositories
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" config-manager --set-enabled google-chrome
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y google-chrome-stable
|
|
|
|
;;
|
|
|
|
*)
|
2024-09-22 17:01:10 +01:00
|
|
|
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
2024-09-20 15:43:08 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}Google Chrome Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 17:56:21 +01:00
|
|
|
}
|
|
|
|
|
2024-09-19 18:31:33 +01:00
|
|
|
install_thorium() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists thorium-browser; then
|
2024-09-22 18:59:39 +01:00
|
|
|
printf "%b\n" "${YELLOW}Installing Thorium Browser...${RC}"
|
2024-09-20 15:43:08 +01:00
|
|
|
case "$PACKAGER" in
|
|
|
|
apt-get|nala)
|
|
|
|
"$ESCALATION_TOOL" rm -fv /etc/apt/sources.list.d/thorium.list
|
|
|
|
"$ESCALATION_TOOL" curl http://dl.thorium.rocks/debian/dists/stable/thorium.list -o /etc/apt/sources.list.d/thorium.list
|
2024-09-22 23:21:05 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" update
|
2024-09-20 15:43:08 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y thorium-browser
|
|
|
|
;;
|
|
|
|
zypper|dnf)
|
|
|
|
url=$(curl -s https://api.github.com/repos/Alex313031/Thorium/releases/latest | grep -oP '(?<=browser_download_url": ")[^"]*\.rpm')
|
2024-09-22 17:01:10 +01:00
|
|
|
echo "$url" && curl -L "$url" -o thorium-latest.rpm
|
2024-09-22 23:21:05 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y thorium-latest.rpm && rm thorium-latest.rpm
|
2024-09-20 15:43:08 +01:00
|
|
|
;;
|
|
|
|
pacman)
|
|
|
|
"$AUR_HELPER" -S --needed --noconfirm thorium-browser-bin
|
|
|
|
;;
|
|
|
|
*)
|
2024-09-22 17:01:10 +01:00
|
|
|
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
2024-09-20 15:43:08 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}Thorium Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 18:31:33 +01:00
|
|
|
}
|
|
|
|
|
2024-09-19 17:56:21 +01:00
|
|
|
install_firefox() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists firefox; then
|
2024-09-22 18:59:39 +01:00
|
|
|
printf "%b\n" "${YELLOW}Installing Mozilla Firefox...${RC}"
|
2024-09-20 15:43:08 +01:00
|
|
|
case "$PACKAGER" in
|
|
|
|
apt-get|nala)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y firefox-esr
|
|
|
|
;;
|
|
|
|
zypper)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install MozillaFirefox
|
|
|
|
;;
|
|
|
|
pacman)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm firefox
|
|
|
|
;;
|
|
|
|
dnf)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y firefox
|
|
|
|
;;
|
|
|
|
*)
|
2024-09-22 17:01:10 +01:00
|
|
|
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
|
|
|
exit 1
|
2024-09-20 15:43:08 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}Firefox Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 17:56:21 +01:00
|
|
|
}
|
|
|
|
|
2024-09-19 18:31:33 +01:00
|
|
|
install_librewolf() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists librewolf; then
|
2024-09-22 18:59:39 +01:00
|
|
|
printf "%b\n" "${YELLOW}Installing Librewolf...${RC}"
|
2024-09-19 19:05:36 +01:00
|
|
|
case "$PACKAGER" in
|
2024-09-19 18:31:33 +01:00
|
|
|
apt-get|nala)
|
2024-09-20 15:43:08 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y gnupg lsb-release apt-transport-https ca-certificates
|
2024-09-19 18:31:33 +01:00
|
|
|
distro=`if echo " una bookworm vanessa focal jammy bullseye vera uma " | grep -q " $(lsb_release -sc) "; then lsb_release -sc; else echo focal; fi`
|
2024-09-20 15:43:08 +01:00
|
|
|
curl -fsSL https://deb.librewolf.net/keyring.gpg | "$ESCALATION_TOOL" gpg --dearmor -o /usr/share/keyrings/librewolf.gpg
|
2024-09-19 18:31:33 +01:00
|
|
|
echo "Types: deb
|
|
|
|
URIs: https://deb.librewolf.net
|
|
|
|
Suites: $distro
|
|
|
|
Components: main
|
|
|
|
Architectures: amd64
|
|
|
|
Signed-By: /usr/share/keyrings/librewolf.gpg" | "$ESCALATION_TOOL" tee /etc/apt/sources.list.d/librewolf.sources > /dev/null
|
2024-09-22 23:21:05 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" update
|
2024-09-21 15:19:41 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y librewolf
|
2024-09-19 18:31:33 +01:00
|
|
|
;;
|
|
|
|
dnf)
|
|
|
|
curl -fsSL https://rpm.librewolf.net/librewolf-repo.repo | pkexec tee /etc/yum.repos.d/librewolf.repo > /dev/null
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y librewolf
|
|
|
|
;;
|
|
|
|
zypper)
|
|
|
|
"$ESCALATION_TOOL" rpm --import https://rpm.librewolf.net/pubkey.gpg
|
|
|
|
"$ESCALATION_TOOL" zypper ar -ef https://rpm.librewolf.net librewolf
|
2024-09-22 23:21:05 +01:00
|
|
|
"$ESCALATION_TOOL" zypper refresh
|
|
|
|
"$ESCALATION_TOOL" zypper --non-interactive install librewolf
|
2024-09-19 18:31:33 +01:00
|
|
|
;;
|
|
|
|
pacman)
|
|
|
|
"$AUR_HELPER" -S --needed --noconfirm librewolf-bin
|
|
|
|
;;
|
|
|
|
*)
|
2024-09-22 17:01:10 +01:00
|
|
|
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
2024-09-19 18:31:33 +01:00
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
2024-09-20 15:43:08 +01:00
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}LibreWolf Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 18:31:33 +01:00
|
|
|
}
|
|
|
|
|
2024-09-19 17:56:21 +01:00
|
|
|
install_brave() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists brave; then
|
2024-09-22 18:59:39 +01:00
|
|
|
printf "%b\n" "${YELLOW}Installing Brave...${RC}"
|
2024-09-20 15:43:08 +01:00
|
|
|
case "$PACKAGER" in
|
|
|
|
apt-get|nala)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y curl
|
|
|
|
"$ESCALATION_TOOL" curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
|
|
|
|
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"| "$ESCALATION_TOOL" tee /etc/apt/sources.list.d/brave-browser-release.list
|
2024-09-22 23:21:05 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" update
|
2024-09-20 15:43:08 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y brave-browser
|
|
|
|
;;
|
|
|
|
zypper)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y curl
|
|
|
|
"$ESCALATION_TOOL" rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" addrepo https://brave-browser-rpm-release.s3.brave.com/brave-browser.repo
|
2024-09-22 23:21:05 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" refresh
|
2024-09-20 15:43:08 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install brave-browser
|
|
|
|
;;
|
|
|
|
pacman)
|
|
|
|
"$AUR_HELPER" -S --noconfirm brave-bin
|
|
|
|
;;
|
|
|
|
dnf)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y dnf-plugins-core
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/brave-browser.repo
|
|
|
|
"$ESCALATION_TOOL" rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y brave-browser
|
|
|
|
;;
|
|
|
|
*)
|
2024-09-22 17:01:10 +01:00
|
|
|
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
|
|
|
exit 1
|
2024-09-20 15:43:08 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}Brave Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 17:56:21 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
install_vivaldi() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists vivaldi; then
|
|
|
|
printf "%b\n" "${YELLOW}Installing Vivaldi...${RC}"
|
|
|
|
curl -fsSL https://downloads.vivaldi.com/snapshot/install-vivaldi.sh | sh
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
printf "%b\n" "${GREEN}Vivaldi installed successfully!${RC}"
|
|
|
|
else
|
|
|
|
printf "%b\n" "${RED}Vivaldi installation failed!${RC}"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}Vivaldi Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 17:56:21 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
install_chromium() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists chromium; then
|
2024-09-22 18:59:39 +01:00
|
|
|
printf "%b\n" "${YELLOW}Installing Chromium...${RC}"
|
2024-09-20 15:43:08 +01:00
|
|
|
case "$PACKAGER" in
|
|
|
|
pacman)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm chromium
|
|
|
|
;;
|
|
|
|
*)
|
2024-09-22 23:21:05 +01:00
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y chromium
|
2024-09-20 15:43:08 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}Chromium Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 17:56:21 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
install_lynx() {
|
2024-09-20 15:43:08 +01:00
|
|
|
if ! command_exists lynx; then
|
2024-09-22 18:59:39 +01:00
|
|
|
printf "%b\n" "${YELLOW}Installing Lynx...${RC}"
|
2024-09-20 15:43:08 +01:00
|
|
|
case "$PACKAGER" in
|
|
|
|
pacman)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm lynx
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y lynx
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
printf "%b\n" "${GREEN}Lynx TUI Browser is already installed.${RC}"
|
|
|
|
fi
|
2024-09-19 17:56:21 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
browserSetup() {
|
|
|
|
clear
|
|
|
|
printf "%b\n" "Browser Installation Script"
|
|
|
|
printf "%b\n" "----------------------------"
|
|
|
|
printf "%b\n" "Select the browsers you want to install:"
|
|
|
|
printf "%b\n" "1. Google Chrome"
|
|
|
|
printf "%b\n" "2. Mozilla Firefox"
|
2024-09-19 18:31:33 +01:00
|
|
|
printf "%b\n" "3. Librewolf"
|
|
|
|
printf "%b\n" "4. Brave"
|
|
|
|
printf "%b\n" "5. Vivaldi"
|
|
|
|
printf "%b\n" "6. Chromium"
|
|
|
|
printf "%b\n" "7. Thorium"
|
|
|
|
printf "%b\n" "8. Lynx"
|
2024-09-19 17:56:21 +01:00
|
|
|
printf "%b\n" "----------------------------"
|
2024-09-22 17:01:10 +01:00
|
|
|
printf "%b" "Enter your choices (e.g. 1 3 5): "
|
2024-09-19 17:56:21 +01:00
|
|
|
read -r choice
|
|
|
|
for ch in $choice; do
|
|
|
|
case $ch in
|
|
|
|
1) install_chrome ;;
|
|
|
|
2) install_firefox ;;
|
2024-09-19 18:31:33 +01:00
|
|
|
3) install_librewolf ;;
|
|
|
|
4) install_brave ;;
|
|
|
|
5) install_vivaldi ;;
|
|
|
|
6) install_chromium ;;
|
|
|
|
7) install_thorium ;;
|
|
|
|
8) install_lynx;;
|
2024-09-19 17:56:21 +01:00
|
|
|
*) printf "%b\n" "${RED}Invalid option: $ch ${RC}" ;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
printf "%b\n" "${GREEN}Installation complete!${RC}"
|
|
|
|
}
|
|
|
|
|
|
|
|
checkEnv
|
|
|
|
checkEscalationTool
|
|
|
|
checkAURHelper
|
|
|
|
browserSetup
|