#!/bin/sh

set -e

if [ -z "${1}" ] || [ -z "${2}" ]; then
	echo "Usage: update.sh \"Ubuntu 20.04\" \"ubuntu-20-20260505.xz\""
	exit 1
fi

cp metadata.json "metadata.json.$(date +"%F-%H-%M-%S")"
name=${1}
filename=${2}
shasum=$(sha1sum "${filename}" | awk '{print $1}')
updated=$(TZ=UTC date +"%F %T")
imagesize=$(du -s --block-size=M "${filename}" | awk '{print $1}' | sed 's/M//')

cat metadata.json | jq \
	--arg date "${updated}" \
	--arg checksum "${shasum}" \
	--arg name "${name}" \
	--arg filename "${filename}" \
	--arg imagesize ${imagesize} \
		'(.os[]| select(.name == $name) | .updated_at) |= $date |
		(.os[]| select(.name == $name) | .file_name) |= $filename |
		(.os[]| select(.name == $name) | .archive_size_mib) |= ($imagesize|tonumber) |
		(.os[]| select(.name == $name) | .checksum) |= $checksum ' > metadata.json.new
cp metadata.json.new metadata.json
cat metadata.json | jq --arg name "${name}" '.os[]| select(.name == $name)'
