#!/usr/bin/env bash 
# if our repo is password protected use:
# REPO_USERNAME=user REPO_PASSWORD=sword bash kublr-load-helm-1.22.1.sh REPO_URL
set -e

REPO_URL="https://dl.kublr.com"
REPO_USERNAME="${REPO_USERNAME:-admin}"
REPO_PASSWORD="${REPO_PASSWORD:-admin123}"
KUBLR_VERSION="${KUBLR_VERSION:-1.22.1}"

if [ -z "$1" ]; then    
    echo Usage: $0 [REGISTRY]
    echo "Repo credentials store into env REPO_USERNAME and REPO_PASSWORD"
    exit 1
fi

REGISTRY=$1
if [[ "${REPO_USERNAME}" != "" ]]; then
    CURL_AUTH_OPTS="${REPO_USERNAME:+"--user "${REPO_USERNAME}:${REPO_PASSWORD}""}"
fi
if [[ ! -f "kublr-helm-${KUBLR_VERSION}.tar.gz" ]]; then
    # Download artifacts from https://repo.kublr.com
    HTTP_RESPONSE=$(curl --silent --head --write-out "HTTPSTATUS:%{http_code}" -X GET ${REPO_URL}/controlplane/${KUBLR_VERSION%%-*}/kublr-helm-${KUBLR_VERSION}.tar.gz)
    HTTP_STATUS=$(echo "${HTTP_RESPONSE}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
    if [ ! "${HTTP_STATUS}" -eq "200"  ]; then
	echo "Error getting file with version ${KUBLR_VERSION}. HTTP status ${HTTP_STATUS}, nothing to do, exit."
	exit 1;
    fi

    echo "Processing kublr-helm-${KUBLR_VERSION}.tar.gz: "
    curl --progress-bar -X GET ${REPO_URL}/controlplane/${KUBLR_VERSION%%-*}/kublr-helm-${KUBLR_VERSION}.tar.gz -o kublr-helm-${KUBLR_VERSION}.tar.gz
    
    if [[ ! -f "kublr-helm-${KUBLR_VERSION}.tar.gz" ]]; then
	echo "No file download found!"
	exit 1;
    fi
fi

MD5SUM=$(md5sum kublr-helm-${KUBLR_VERSION}.tar.gz)
if [[ "${MD5SUM}" != "b581d8e364b681b91bcad6734fe56bc7  kublr-helm-${KUBLR_VERSION}.tar.gz" ]]; then
    echo "Wrong md5 checksum!"
    echo "md5 checksum must be b581d8e364b681b91bcad6734fe56bc7 for kublr-helm-${KUBLR_VERSION}.tar.gz"
    exit 1;
fi

tar xzf kublr-helm-${KUBLR_VERSION}.tar.gz

curl -k --progress-bar -X PUT -f ${CURL_AUTH_OPTS} --upload-file "kublr-helm-packages/app-monitoring-1.22.1-11.tgz" "${REGISTRY}/app-monitoring-1.22.1-11.tgz" 
curl -k --progress-bar -X PUT -f ${CURL_AUTH_OPTS} --upload-file "kublr-helm-packages/controlplane-1.22.1-40.tgz" "${REGISTRY}/controlplane-1.22.1-40.tgz" 
curl -k --progress-bar -X PUT -f ${CURL_AUTH_OPTS} --upload-file "kublr-helm-packages/kublr-feature-ingress-1.22.1-7.tgz" "${REGISTRY}/kublr-feature-ingress-1.22.1-7.tgz" 
curl -k --progress-bar -X PUT -f ${CURL_AUTH_OPTS} --upload-file "kublr-helm-packages/kublr-feature-logging-1.22.1-22.tgz" "${REGISTRY}/kublr-feature-logging-1.22.1-22.tgz" 
curl -k --progress-bar -X PUT -f ${CURL_AUTH_OPTS} --upload-file "kublr-helm-packages/kublr-operator-1.22.1-8.tgz" "${REGISTRY}/kublr-operator-1.22.1-8.tgz" 
curl -k --progress-bar -X PUT -f ${CURL_AUTH_OPTS} --upload-file "kublr-helm-packages/kublr-system-1.22.1-5.tgz" "${REGISTRY}/kublr-system-1.22.1-5.tgz" 
echo cleaning...
rm -fr kublr-helm-packages/
