#!/bin/bash
set -e

source $(dirname $0)/version
source $(dirname $0)/export-config
source $(dirname $0)/package-env

cd $(dirname $0)/../package

../scripts/k3s-images.sh

cp ../bin/rancher ../bin/agent ../bin/data.json ../bin/k3s-airgap-images.tar .

# Make sure the used data.json is a release artifact
cp ../bin/data.json ../bin/rancher-data.json

if [ ${ARCH} == arm64 ]; then
    ETCD_UNSUPPORTED_ARCH=arm64
fi
if [ ${ARCH} == s390x ]; then
    ETCD_UNSUPPORTED_ARCH=s390x
fi

docker build \
    --build-arg VERSION=${TAG} \
    --build-arg ETCD_UNSUPPORTED_ARCH=${ETCD_UNSUPPORTED_ARCH} \
    --build-arg ARCH=${ARCH} \
    --build-arg IMAGE_REPO=${REPO} \
    --build-arg CHART_DEFAULT_BRANCH=${CHART_DEFAULT_BRANCH} \
    --build-arg CATTLE_RANCHER_WEBHOOK_VERSION="${CATTLE_RANCHER_WEBHOOK_VERSION}" \
    --build-arg CATTLE_REMOTEDIALER_PROXY_VERSION="${CATTLE_REMOTEDIALER_PROXY_VERSION}" \
    --build-arg CATTLE_RANCHER_PROVISIONING_CAPI_VERSION="${CATTLE_RANCHER_PROVISIONING_CAPI_VERSION}" \
    --build-arg CATTLE_RANCHER_TURTLES_VERSION="${CATTLE_RANCHER_TURTLES_VERSION}" \
    --build-arg CATTLE_CSP_ADAPTER_MIN_VERSION="${CATTLE_CSP_ADAPTER_MIN_VERSION}" \
    --build-arg CATTLE_FLEET_VERSION="${CATTLE_FLEET_VERSION}" \
    --target server \
    -t ${IMAGE} .

docker build \
    --build-arg VERSION=${TAG} \
    --build-arg ARCH=${ARCH} \
    --build-arg RANCHER_TAG=${TAG} \
    --build-arg CATTLE_RANCHER_WEBHOOK_VERSION="${CATTLE_RANCHER_WEBHOOK_VERSION}" \
    --build-arg CATTLE_RANCHER_PROVISIONING_CAPI_VERSION="${CATTLE_RANCHER_PROVISIONING_CAPI_VERSION}" \
    --build-arg CATTLE_RANCHER_TURTLES_VERSION="${CATTLE_RANCHER_TURTLES_VERSION}" \
    --build-arg RANCHER_REPO=${REPO} \
    --target agent \
    -t ${AGENT_IMAGE} .

mkdir -p ../dist
echo ${IMAGE} > ../dist/images
echo ${AGENT_IMAGE} >> ../dist/images
echo Built ${IMAGE} #${AGENT_IMAGE}
echo

cd ../bin

if [ ! -d $CHART_REPO_DIR ]; then
    git clone --branch $CHART_DEFAULT_BRANCH https://github.com/rancher/charts $CHART_REPO_DIR
fi

if [ ${ARCH} == amd64 ]; then
    # Move this out of ARCH check for local dev on non-amd64 hardware.
    TAG=$TAG REPO=${REPO} CGO_ENABLED=0 go run ../pkg/image/export/main.go $SYSTEM_CHART_REPO_DIR $CHART_REPO_DIR $IMAGE $AGENT_IMAGE $SYSTEM_AGENT_UPGRADE_IMAGE $WINS_AGENT_UPGRADE_IMAGE ${SYSTEM_AGENT_INSTALLER_RKE2_IMAGES[@]} ${SYSTEM_AGENT_INSTALLER_K3S_IMAGES[@]}
fi

# Create components file used for pre-release notes
../scripts/create-components-file.sh
