#!/bin/bash

PROGNAME="${BASH_SOURCE[0]}"
HERE="$(cd "$(dirname "$PROGNAME")" &>/dev/null && pwd)"
READIES=$(cd $HERE/.. && pwd)
. $READIES/shibumi/defs
DIST="$(source /etc/os-release; echo $ID;)"

if [[ $1 == --help || $1 == help || $HELP == 1 ]]; then
	cat <<-END
		Install RHEL-compatible semi-official repositories (EPEL, Raven)

		[ARGVARS...] getepel [--help|help]

		Argument variables:
		EPEL=ver     EPEL version (7/8)
		NO_RAVEN=1   Do not install Raven repo

		VERBOSE=1    Print commands
		NOP=1        Print commands but do not execute

		END
	exit 0
fi

if [[ ! -f /etc/redhat-release ]]; then
	eprint "Not an EPEL-compatible OS."
	exit 1
fi

if [[ -z $EPEL ]]; then
	EPEL=$(source /etc/os-release; echo $VERSION_ID;)
fi
[[ $EPEL == 7* ]] && EPEL=7
[[ $EPEL == 8* ]] && EPEL=8
[[ $EPEL == 9* ]] && EPEL=9
if [[ $EPEL != 7 && $EPEL != 8 && $EPEL != 9 ]]; then
	eprint "Cannot determine EPEL version."
	exit 1
fi

if [[ $DIST == "ol" ]]; then
    tee /etc/yum.repos.d/ol8-epel.repo<<-EOF
		[ol8_developer_EPEL]
		name= Oracle Linux \$releasever EPEL (\$basearch)
		baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/developer/EPEL/\$basearch/
		gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
		gpgcheck=1
		enabled=1
		EOF
    runn dnf makecache
    exit 0
fi

if is_command dnf; then
	runn dnf install -q -y dnf-plugins-core
	if ! rpm -q remi-release &> /dev/null; then
		runn dnf install -y epel-release
		# runn dnf install -q -y --allowerasing https://dl.fedoraproject.org/pub/epel/epel-release-latest-${EPEL}.noarch.rpm
		runn dnf install -q -y http://rpms.remirepo.net/enterprise/remi-release-${EPEL}.rpm
	fi
	runn dnf config-manager -y --set-enabled remi powertools

	# enable raven repo (i.e. pkgs.org)
	if [[ $EPEL == 8 && `uname -m` == x86_64 && NO_RAVEN != 1 ]]; then
		runn dnf install -y https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-2.el8.noarch.rpm
	fi
elif is_command yum; then
	runn yum install -y epel-release yum-utils centos-release-scl
	if ! rpm -q remi-release &> /dev/null; then
		runn yum install -y http://rpms.remirepo.net/enterprise/remi-release-${EPEL}.rpm
	fi
	runn yum-config-manager -y --enable remi
	runn yum-config-manager -y --enable rhel-server-rhscl-7-rpms
fi
