mirror of
https://github.com/ChrisTitusTech/linutil.git
synced 2024-12-25 12:59:45 +00:00
cca2660c3b
* increase synergy between scripts * Fix newlines Fix packagers etc * fix an issue with no new line being created * fix formatting Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * fix extra comma Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * change to () Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * change to () Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * change to () Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * change to () Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * remove extra comma Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * remove "please" Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * add support for caps Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * add support for caps Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * add support for caps Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * remove \n and make the default option "N" Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * add an extra quote Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * add extra quotes * fix remaining sn * fix remaining new lines --------- Co-authored-by: nnyyxxxx <nnyyxxxx@users.noreply.github.com> Co-authored-by: Adam Perkowski <adas1per@protonmail.com>
88 lines
2.5 KiB
Bash
Executable File
88 lines
2.5 KiB
Bash
Executable File
#!/bin/sh -e
|
|
|
|
. ../common-script.sh
|
|
|
|
# Function to prompt the user for installation choice
|
|
choose_installation() {
|
|
clear
|
|
printf "%b\n" "${YELLOW}Choose what to install:${RC}"
|
|
printf "%b\n" "1. ${YELLOW}Docker${RC}"
|
|
printf "%b\n" "2. ${YELLOW}Docker Compose${RC}"
|
|
printf "%b\n" "3. ${YELLOW}Both${RC}"
|
|
printf "Enter your choice [1-3]: "
|
|
read -r CHOICE
|
|
|
|
case "$CHOICE" in
|
|
1) INSTALL_DOCKER=1; INSTALL_COMPOSE=0 ;;
|
|
2) INSTALL_DOCKER=0; INSTALL_COMPOSE=1 ;;
|
|
3) INSTALL_DOCKER=1; INSTALL_COMPOSE=1 ;;
|
|
*) printf "%b\n" "${RED}Invalid choice. Exiting.${RC}"; exit 1 ;;
|
|
esac
|
|
}
|
|
|
|
install_docker() {
|
|
printf "%b\n" "${YELLOW}Installing Docker...${RC}"
|
|
case "$PACKAGER" in
|
|
apt-get|nala|yum)
|
|
curl -fsSL https://get.docker.com | sh
|
|
;;
|
|
zypper)
|
|
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install docker
|
|
"$ESCALATION_TOOL" systemctl enable docker
|
|
"$ESCALATION_TOOL" systemctl start docker
|
|
;;
|
|
pacman)
|
|
"$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm docker
|
|
"$ESCALATION_TOOL" systemctl enable docker
|
|
"$ESCALATION_TOOL" systemctl start docker
|
|
;;
|
|
*)
|
|
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
install_docker_compose() {
|
|
printf "%b\n" "${YELLOW}Installing Docker Compose...${RC}"
|
|
case "$PACKAGER" in
|
|
apt-get|nala|yum)
|
|
"$ESCALATION_TOOL" "$PACKAGER" install -y docker-compose-plugin
|
|
;;
|
|
zypper)
|
|
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install docker-compose
|
|
;;
|
|
pacman)
|
|
"$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm docker-compose
|
|
;;
|
|
*)
|
|
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
install_components() {
|
|
choose_installation
|
|
|
|
if [ "$INSTALL_DOCKER" -eq 1 ]; then
|
|
if ! command_exists docker; then
|
|
install_docker
|
|
else
|
|
printf "%b\n" "${GREEN}Docker is already installed.${RC}"
|
|
fi
|
|
fi
|
|
|
|
if [ "$INSTALL_COMPOSE" -eq 1 ]; then
|
|
if ! command_exists docker-compose || ! command_exists docker compose version; then
|
|
install_docker_compose
|
|
else
|
|
printf "%b\n" "${GREEN}Docker Compose is already installed.${RC}"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
checkEnv
|
|
checkEscalationTool
|
|
install_components
|