#!/usr/bin/env bash

scriptpath="`readlink -f \"$0\"`"
scriptbase="`dirname \"${scriptpath}\"`"

. "${scriptbase}/migrate-tools"

OS="`getos`"
SERVER_LIST=("10.180.9.253" "10.190.9.253" "10.120.1.112")
component="${1:-main}"

available_servers=()
for server in "${SERVER_LIST[@]}"; do
	if fping "${server}" > /dev/null 2>&1; then
		echo "Found an available server: ${server}"
		available_servers+=("${server}")
	fi
done

if [ "${#available_servers[@]}" = "0" ]; then
	abort 1 "No available servers found"
fi

if [ "${OS}" = "Ubuntu" ]; then
	printf "" > "/etc/apt/sources.list.d/dosis.list"
	for server in "${available_servers[@]}"; do
		echo "deb http://${server}/repos/ubuntu/dosis/ bionic ${component}" >> "/etc/apt/sources.list.d/dosis.list"
	done
	apt-get update
elif [ "${OS}" = "CentOS" ]; then
	printf "" > "/etc/yum.repos.d/dosis-mirrors-testing"
	printf "" > "/etc/yum.repos.d/dosis-mirrors"
	printf "" > "/etc/yum.repos.d/dosis-mirrors-testing-noarch"
	printf "" > "/etc/yum.repos.d/dosis-mirrors-noarch"
	for server in "${available_servers[@]}"; do
		echo "http://${server}/repos/centos/dosis/el6/testing/x86_64" >> "/etc/yum.repos.d/dosis-mirrors-testing"
		echo "http://${server}/repos/centos/dosis/el6/main/x86_64" >> "/etc/yum.repos.d/dosis-mirrors"
		echo "http://${server}/repos/centos/dosis/el6/testing/noarch" >> "/etc/yum.repos.d/dosis-mirrors-testing-noarch"
		echo "http://${server}/repos/centos/dosis/el6/main/noarch" >> "/etc/yum.repos.d/dosis-mirrors-noarch"
	done

	if [ "${component}" = "testing" ]; then
		testing=1
		main=0
	elif [ "${component}" = "main" ]; then
		testing=0
		main=1
	else
		testing=0
		main=0
	fi

	cat <<EOF > "/etc/yum.repos.d/Dosis.repo"
[dosis]
name=dosis
failovermethod=priority
mirrorlist=file:///etc/yum.repos.d/dosis-mirrors
gpgcheck=0
skip_if_unavailable=1
enabled=${main}
proxy=_none_

[dosis-noarch]
name=dosis-noarch
failovermethod=priority
mirrorlist=file:///etc/yum.repos.d/dosis-mirrors-noarch
gpgcheck=0
skip_if_unavailable=1
enabled=${main}
proxy=_none_

[dosis-testing]
name=dosis-testing
failovermethod=priority
mirrorlist=file:///etc/yum.repos.d/dosis-mirrors-testing
gpgcheck=0
skip_if_unavailable=1
enabled=${testing}

[dosis-testing-noarch]
name=dosis-testing-noarch
failovermethod=priority
mirrorlist=file:///etc/yum.repos.d/dosis-mirrors-testing-noarch
gpgcheck=0
skip_if_unavailable=1
enabled=${testing}
EOF
	yum clean all
	yum clean expire-cache
	yum repolist
else
	echo "Unsupported OS: ${OS}"
fi
