#!/bin/sh
#
# metadata_begin
# recipe: VMmanager6
# tags: almalinux9
# revision: 1
# description_ru: VMmanager 6
# description_en: VMmanager 6
# metadata_end
#
RNAME=VMmanager6

set -x

LOG_PIPE=/tmp/log.pipe.$$                                                                                                                                                                                                                    
mkfifo ${LOG_PIPE}
LOG_FILE=/root/${RNAME}.log
touch ${LOG_FILE}
chmod 600 ${LOG_FILE}

tee < ${LOG_PIPE} ${LOG_FILE} &

exec > ${LOG_PIPE}
exec 2> ${LOG_PIPE}

dnf install -y curl jq
curl -O https://download.ispsystem.com/6/installer/vm/vm
chmod +x vm
./vm install -f
IP=$(ip route get 1 2>/dev/null | grep -o 'src [^ ]*' | cut -d' ' -f2)
if [ -z "$IP" ]; then
  IP=$(ip -br addr show | grep -v lo | grep UP | head -1 | awk '{print $3}' | cut -d/ -f1)
fi
i=0
while [ $i -lt 10 ]; do
    INVITE_RESULT=$(curl -s -k "https://127.0.0.1/auth/v4/public/first_user_invite" -d '{}')
    INVITE_TOKEN=$(echo "$INVITE_RESULT" | jq -r '.token')
    if [ "$INVITE_TOKEN" = "null" ]; then
        sleep 1
    else
        break
    fi
    i=$((i + 1))
done
if [ "$INVITE_TOKEN" = "null" ]; then
    exit 1
else
    echo "https://$IP/auth/setup?token=$INVITE_TOKEN" > /root/link
fi
