#! /usr/bin/env bash
set -euo pipefail

VMDK_SHA=$(sha256sum ubuntu-bionic-18.04-cloudimg.vmdk | awk '{print $1}')
OVF_SHA=$(sha256sum ubuntu-bionic-18.04-cloudimg.ovf | awk '{print $1}')
KEY=$(cat ~/.id_rsa.pub)


# OVA Extract
cd
mkdir -p bionic
cd bionic
curl -O https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.ova
tar -xvf bionic-server-cloudimg-amd64.ova
rm -rf bionic-server-cloudimg-amd64.ova

# OVF Modification
sed -i "s#<Property ovf:key="public-keys" ovf:type="string" ovf:userConfigurable="true" ovf:value=""#<Property ovf:key="public-keys" ovf:type="string" ovf:userConfigurable="true" ovf:value="$KEY"#g" ubuntu-bionic-18.04-cloudimg.ovf

# MF Generation
cp ubuntu-bionic-18.04-cloudimg.mf ubuntu-bionic-18.04-cloudimg.mfBKP
printf "SHA256(ubuntu-bionic-18.04-cloudimg.vmdk)= $VMDK_SHA\n">ubuntu-bionic-18.04-cloudimg.mf
printf "SHA256(ubuntu-bionic-18.04-cloudimg.ovf)=$OVF_SHA\n">>ubuntu-bionic-18.04-cloudimg.mf

# OVA Reassemble
tar -cvf bionic.ova --format=ustar ubuntu-bionic-18.04-cloudimg.ovf ubuntu-bionic-18.04-cloudimg.vmdk ubuntu-bionic-18.04-cloudimg.mf