linutil/core/tabs/applications-setup/podman-setup.sh

89 lines
2.4 KiB
Bash
Raw Normal View History

2024-10-09 12:25:25 +01:00
#!/bin/sh -e
. ../common-script.sh
choose_installation() {
clear
printf "%b\n" "${YELLOW}Choose what to install:${RC}"
printf "%b\n" "1. ${YELLOW}Podman${RC}"
printf "%b\n" "2. ${YELLOW}Podman Compose${RC}"
printf "%b\n" "3. ${YELLOW}Both${RC}"
printf "%b" "Enter your choice [1-3]: "
read -r CHOICE
case "$CHOICE" in
1) INSTALL_PODMAN=1; INSTALL_COMPOSE=0 ;;
2) INSTALL_PODMAN=0; INSTALL_COMPOSE=1 ;;
3) INSTALL_PODMAN=1; INSTALL_COMPOSE=1 ;;
*) printf "%b\n" "${RED}Invalid choice. Exiting.${RC}"; exit 1 ;;
esac
}
install_podman() {
printf "%b\n" "${YELLOW}Installing Podman...${RC}"
case "$PACKAGER" in
apt-get|nala)
"$ESCALATION_TOOL" "$PACKAGER" install -y podman
;;
zypper)
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install podman
;;
pacman)
"$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm podman
;;
dnf)
"$ESCALATION_TOOL" "$PACKAGER" install -y podman
;;
*)
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
exit 1
;;
esac
}
install_podman_compose() {
printf "%b\n" "${YELLOW}Installing Podman Compose...${RC}"
case "$PACKAGER" in
apt-get|nala)
"$ESCALATION_TOOL" "$PACKAGER" install -y podman-compose
;;
zypper)
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install podman-compose
;;
pacman)
"$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm podman-compose
2024-10-09 12:25:25 +01:00
;;
dnf)
"$ESCALATION_TOOL" "$PACKAGER" install -y podman-compose
;;
*)
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
exit 1
;;
esac
}
install_components() {
choose_installation
if [ "$INSTALL_PODMAN" -eq 1 ]; then
if ! command_exists podman; then
install_podman
else
printf "%b\n" "${GREEN}Podman is already installed.${RC}"
fi
fi
if [ "$INSTALL_COMPOSE" -eq 1 ]; then
if ! command_exists podman-compose || ! command_exists podman compose version; then
2024-10-09 12:25:25 +01:00
install_podman_compose
else
printf "%b\n" "${GREEN}Podman Compose is already installed.${RC}"
fi
fi
}
checkEnv
checkEscalationTool
install_components