#!/usr/bin/env bash
###################
AWSVERSION=v1.7.1
CSIVERSION=v0.5.1
BUCKET=yolokube-velero
S3URL=https://38a7c29ab4f869c340784d3d7aaa0f62.r2.cloudflarestorage.com
###################
command_exists() {
    command -v "$1" >/dev/null 2>&1
    if [[ $? -ne 0 ]]; then
        echo "Software dependency not met: $1"
        exit 1
    fi
}
echo -n "check if velero is installed"
command_exists "velero"
echo ": done"
if [ ! -f ./credentials ]; then
    echo "credentials file is missing, aborting"
    exit 1
fi
PS3='Please enter your choice: '
options=("Install velero with CSI plugins" "Install velero without CSI plugins" "Install CSI Plugins only" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Install velero with CSI plugins")
            velero install \
            --provider aws \
            --features=EnableCSI \
            --plugins velero/velero-plugin-for-aws:${AWSVERSION},velero/velero-plugin-for-csi:${CSIVERSION} \
            --bucket ${BUCKET} \
            --secret-file ./credentials \
            --use-volume-snapshots=false \
            --backup-location-config region=weur,s3ForcePathStyle="true",s3Url=${S3URL}
            exit 0
            ;;
        "Install velero without CSI plugins")
            velero install \
            --provider aws \
            --plugins velero/velero-plugin-for-aws:${AWSVERSION} \
            --bucket ${BUCKET} \
            --secret-file ./credentials \
            --use-volume-snapshots=false \
            --backup-location-config region=weur,s3ForcePathStyle="true",s3Url=${S3URL}
            exit 0
            ;;
        "Install CSI Plugins only")
            velero plugin add velero/velero-plugin-for-csi:${CSIVERSION}
            velero client config set features=EnableCSI
            echo "done"
            exit 0
            ;;
        "Quit")
            exit 0
            ;;
        *) echo "invalid option $REPLY";;
    esac
done
exit 1