#!/bin/bash
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Usage:
# update_image.sh [image_to_update] [packages...]
usage()
{
cat <<EOF

usage:
   update_image.sh [image_to_update] [packages...]
EOF
}

if [[ $# < 2 ]]; then
   echo "Not enough arguments supplied."
   usage
   exit 1
fi

if [[ -f /home/${USER}/trunk/src/scripts/.default_board ]]; then
   BOARD=$( cat /home/${USER}/trunk/src/scripts/.default_board )
else
   BOARD=st1q
fi

IMAGE=$( readlink -f ${1} )
IMAGE_DIR=$( dirname "${IMAGE}" )
shift
PKGS=$@

if [[ -z "${IMAGE}" || ! -f ${IMAGE} ]]; then
   echo "Missing required argument 'image_to_update'"
   usage
   exit 1
fi

cd ${IMAGE_DIR}
if ! [[ -x ./unpack_partitions.sh && -x ./pack_partitions.sh ]]; then
   echo "Could not find image manipulation scripts."
   exit 1
fi

./unpack_partitions.sh ${IMAGE}
mkdir -p ./rootfs
mkdir -p ./stateful_part
mkdir -p ./orig_partitions

rm -rf ./orig_partitions/*
cp ./part_* ./orig_partitions
sudo mount -o loop part_3 rootfs
sudo mount -o loop part_1 stateful_part
sudo mount --bind stateful_part/dev_image rootfs/usr/local
sudo mount --bind stateful_part/var_overlay rootfs/var

emerge-${BOARD} --root="./rootfs" \
   --root-deps=rdeps --nodeps --usepkgonly ${PKGS}

#if the kernel is one of the packages that got updated
#we need to update the kernel partition as well.
if [[ ${PKGS/kernel/} != ${PKGS} ]]; then
   rm -rf part_2
   sudo dd if="/dev/zero" of=part_2 bs=512 count=8192
   sudo dd if="./rootfs/boot/vmlinuz" of=part_2 bs=512 count=8192 conv=notrunc
fi

sudo umount rootfs/usr/local
sudo umount rootfs/var
sudo umount rootfs
sudo umount stateful_part
./pack_partitions.sh ${IMAGE}

cd -
