#!/bin/bash
# Repacks chromiumos_*.bin into the assets of FerrochromeApp

usage() {
	echo "Usage: $0 CHROME_OS_DISK_IMAGE"
	exit 1
}

if [ "$#" -ne 1 ]; then
	usage
fi

disk=$1

loop=$(sudo losetup --show -f -P ${disk})
kern=$(sudo fdisk -x ${loop} | grep KERN-A | awk "{print\$1}")
root=$(sudo fdisk -x ${loop} | grep ROOT-A | awk "{print\$1}")
efi=$(sudo fdisk -x ${loop} | grep EFI-SYSTEM | awk "{print\$1}")
state=$(sudo fdisk -x ${loop} | grep STATE | awk "{print\$1}")
root_guid=$(sudo fdisk -x ${loop} | grep ROOT-A | awk "{print\$6}")

tempdir=$(mktemp -d)
pushd ${tempdir} > /dev/null
echo Extracting partition images...
sudo cp --sparse=always ${kern} kernel.img
sudo cp --sparse=always ${root} root.img
sudo cp --sparse=always ${efi} efi.img
sudo cp --sparse=always ${state} state.img
sudo chmod 777 *.img

echo Archiving. This can take long...
tar czvS -f images.tar.gz *.img

echo Calculating hash...
hash=$(sha1sum images.tar.gz | cut -d' ' -f 1)

echo Splitting...
split -b 100M -d images.tar.gz images.tar.gz.part

popd > /dev/null
asset_dir=$(dirname $0)/assets/ferrochrome
echo Updating ${asset_dir}...
vm_config_template=$(dirname $0)/vm_config.json.template
mkdir -p ${asset_dir}
rm ${asset_dir}/images.tar.gz.part*
mv ${tempdir}/images.tar.gz.part* ${asset_dir}
sed -E s/GUID/${root_guid}/ ${vm_config_template} > ${asset_dir}/vm_config.json
echo ${hash} > ${asset_dir}/version

echo Cleanup...
sudo losetup -d ${loop}
rm -rf ${tempdir}
echo Done.
