#!/usr/bin/env bash

. /usr/share/dosis2/bin/shell-support-functions

DEFAULT_PROXY_SERVER="dosis_user:WgPcGr98@3.21.95.229:3337"
PROXY_SERVER=${DEFAULT_PROXY_SERVER}
OS="`getos`"


function error() {
    echo -e "\033[031m$1\033[0m"
}

if [ ${UID} != 0 ]; then
    abort 1 "This script must be ran as root"
fi


if [ "${PROXY_SERVER}" = "" ]; then
	abort 2 "No proxy server alive to use"
fi

if [ "${OS}" = "CentOS" ]; then
    echo "Detected ${OS}: Patching Repo Files"

    PATCH_FILES_CONFIG=(
        "base,updates,extras,centosplus,contrib:/etc/yum.repos.d/CentOS-Base.repo"
        "epel,epel-debuginfo,epel-source:/etc/yum.repos.d/epel.repo"
        "epel-testing,epel-testing-debuginfo,epel-testing-source:/etc/yum.repos.d/epel-testing.repo"
        "PUIAS_6_computational:/etc/yum.repos.d/puias-computational.repo"
        "rpmfusion-free-updates,rpmfusion-free-updates-debuginfo,rpmfusion-free-updates-source:/etc/yum.repos.d/rpmfusion-free-updates.repo"
        "rpmfusion-free-updates-testing,rpmfusion-free-updates-testing-debuginfo,rpmfusion-free-updates-testing-source:/etc/yum.repos.d/rpmfusion-free-updates-testing.repo"
    )

    for fc in ${PATCH_FILES_CONFIG[@]}; do
        file="`echo ${fc} | cut -d: -f2`"
        sections="`echo ${fc} | cut -d: -f1 | sed 's/,/ /g'`"

        for s in ${sections}; do
            echo "Patching [${s}] ${file}"
            sed -i -re "/\[${s}\]/,/\[/s/#+baseurl=/baseurl=/g" "${file}"
            sed -i -re "/\[${s}\]/,/\[/s/#*mirrorlist=/#mirrorlist=/g" "${file}"
        done
    done

    echo "Patching Dosis.repo"
    sed -i '/proxy=_none_/d' "/etc/yum.repos.d/Dosis.repo" 
    sed -i '/enabled=1/a proxy=_none_' "/etc/yum.repos.d/Dosis.repo"

    /opt/dosis2/bin/conf-edit "/etc/yum.conf" --output "/etc/yum.conf" \
        --set main.proxy="http://${PROXY_SERVER}"
elif [ "${OS}" = "Ubuntu" ]; then
echo "
Acquire::http::Proxy::10.180.9.253 DIRECT;
Acquire::http::Proxy::10.190.9.253 DIRECT;
Acquire::http::Proxy::10.200.9.253 DIRECT;
Acquire::http::Proxy::10.120.1.112 DIRECT;
Acquire::http::Proxy \"http://${PROXY_SERVER}\";
" > /etc/apt/apt.conf.d/97proxy
else
    error "Unknown OS: ${OS}"
    exit 1
fi

echo "
http_proxy=http://${PROXY_SERVER}
https_proxy=http://${PROXY_SERVER}
export http_proxy
export https_proxy
" > /opt/dosis2/etc/bashrc.d/97-proxy

. /opt/dosis2/etc/bashrc.d/97-proxy

sed -i "s/http_proxy=\"\"/http_proxy=\"http:\/\/${PROXY_SERVER}\"/" /usr/share/dosis2/bin/backup-to-aws-wrapper
sed -i "s/https_proxy=\"\"/https_proxy=\"http:\/\/${PROXY_SERVER}\"/" /usr/share/dosis2/bin/backup-to-aws-wrapper

