#!/bin/bash

if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
    set -x
fi
set -eu
set -o pipefail

echo "START: installing MapR core repository"

install-packages curl

MAPR_REPO_DIR=/opt/mapr-repository/core

if [ "$DISTRO_NAME" = "ubuntu" ]; then
    MAPR_REPO_URL=${DIB_MAPR_CORE_DEB_REPO:-"http://package.mapr.com/releases/v${DIB_MAPR_VERSION}/ubuntu/mapr-v${DIB_MAPR_VERSION}GA.deb.tgz"}
elif [ "$DISTRO_NAME" = "centos" -o "$DISTRO_NAME" = "rhel" ]; then
    MAPR_REPO_URL=${DIB_MAPR_CORE_RPM_REPO:-"http://package.mapr.com/releases/v${DIB_MAPR_VERSION}/redhat/mapr-v${DIB_MAPR_VERSION}GA.rpm.tgz"}
else
    echo "Unknown distribution"
    exit 1
fi

echo "Downloading MapR repository archive"
mkdir -p ${MAPR_REPO_DIR}
sudo curl ${MAPR_REPO_URL} -o ${MAPR_REPO_DIR}/mapr-v"${DIB_MAPR_VERSION}"GA.tgz

if [ $? != 0 ]; then
    echo "MapR repository archive download failed"
    exit 1
fi

echo "Unpacking MapR repository archive"
tar -zxf ${MAPR_REPO_DIR}/mapr-v${DIB_MAPR_VERSION}GA.tgz -C ${MAPR_REPO_DIR}

echo "Removing MapR repository archive"
rm -f ${MAPR_REPO_DIR}/mapr-v${DIB_MAPR_VERSION}GA.tgz

if [ "$DISTRO_NAME" = "ubuntu" ]; then
    mkdir -p "${MAPR_REPO_DIR}"/dists/binary/optional/binary-amd64
    cd ${MAPR_REPO_DIR}
    dpkg-scanpackages -m . /dev/null | gzip -9c > dists/binary/optional/binary-amd64/Packages.gz
elif [ "$DISTRO_NAME" = "centos" -o "$DISTRO_NAME" = "rhel" ]; then
    createrepo "${MAPR_REPO_DIR}"
fi

echo "Adding MapR repository"
if [ "$DISTRO_NAME" = "ubuntu" ]; then
    cat >> /etc/apt/sources.list.d/maprtech.list << EOF
deb [arch=amd64] file://${MAPR_REPO_DIR} binary optional
EOF

elif [ "$DISTRO_NAME" = "centos" -o "$DISTRO_NAME" = "rhel" ]; then
    cat >> /etc/yum.repos.d/maprtech.repo << EOF
[mapr-core]
name=MapR Technologies
baseurl=file://${MAPR_REPO_DIR}
enabled=1
gpgcheck=0
protect=1
EOF

fi

echo "END: installing MapR core repository"
