#!/usr/bin/env bash

YUM="yum"
APT="apt"
PIP3="pip3"
YUM_CONFIG_MGR="yum-config-manager"
WHICH_YUM=$(command -v $YUM)
WHICH_APT=$(command -v $APT)
YUM_INSTALL="$YUM install"
APT_INSTALL="$APT install"
PIP3_INSTALL="$PIP3 install"
declare -a YUM_LIST=("https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm"
	"docker-ce"
	"docker-ce-cli"
	"epel-release"
	"pass"
	"python3")
declare -a APT_LIST=("docker"
	"docker-compose" "pass")

add_yum_repo() (
	$YUM_CONFIG_MGR --add-repo https://download.docker.com/linux/centos/docker-ce.repo
)

update_yum() (
	$YUM_INSTALL -y yum-utils
	add_yum_repo
)

update_apt() (
	$APT update
	DEBIAN_FRONTEND=noninteractive $APT --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
)

restart_docker_service() (
	service docker restart
)
install_yum_packages() (
	$YUM_INSTALL "${YUM_LIST[@]}" -y
)

install_pip3_packages() (
	$PIP3_INSTALL docker-compose
)

install_apt_packages() (
	$APT_INSTALL "${APT_LIST[@]}" -y
)

main() (
	if [[ -n $WHICH_YUM ]]; then
		update_yum
		install_yum_packages
		install_pip3_packages
		restart_docker_service
	elif [[ -n $WHICH_APT ]]; then
		update_apt
		install_apt_packages
		restart_docker_service
	else
		echo "Unknown platform. Error while installing the required packages"
		exit 1
	fi
)

main