#!/bin/bash

# Copyright (c) 2011 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.
#
# Updates an existing vm image with another image.

. $(dirname "$(readlink -f "$0")")/outside_chroot_common.sh || exit 1
. "${SCRIPT_ROOT}/common.sh" || exit 1
. "${SCRIPT_ROOT}/lib/cros_vm_lib.sh" || die "Unable to load cros_vm_lib.sh"

DEFINE_string payload "" "Full name of the payload to update with."
DEFINE_string proxy_port "" \
  "Have the client request from this proxy instead of devserver."
DEFINE_boolean quick_test ${FLAGS_FALSE} "Don't perform update, only reboot."
DEFINE_string src_image "" \
  "Create a delta update by passing in the image on the remote machine."
DEFINE_string stateful_update_flag "" "Flags to pass to stateful update." s
DEFINE_string image "" "Path of the image to update to." u
DEFINE_string update_log "update_engine.log" \
  "Path to log for the update_engine."
DEFINE_string update_url "" "Full url of an update image."
DEFINE_string vm_image_path "" "Path of the VM image to update from." v

set -e

# Parse command line.
FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"

[ -n "${FLAGS_vm_image_path}" ] || \
  die "You must specify a path to a vm image."

trap stop_kvm EXIT
start_kvm "${FLAGS_vm_image_path}"
retry_until_ssh

if [ -n "${FLAGS_image}" ]; then
  IMAGE_ARGS="--image=$(readlink -f ${FLAGS_image})"
fi

if [ -n "${FLAGS_payload}" ]; then
  IMAGE_ARGS="--payload=${FLAGS_payload}"
fi

if [ -n "${FLAGS_proxy_port}" ]; then
  IMAGE_ARGS="${IMAGE_ARGS} --proxy_port=${FLAGS_proxy_port}"
fi

QUICK_TEST_FLAGS=""
if [ "${FLAGS_quick_test}" -eq "${FLAGS_TRUE}" ]; then
  info "Skipping update testing."
  QUICK_TEST_FLAGS="--noupdate --noupdate_stateful"
fi

"${SCRIPT_ROOT}/image_to_live.sh" \
  --remote=127.0.0.1 \
  --ssh_port=${FLAGS_ssh_port} \
  --stateful_update_flag=${FLAGS_stateful_update_flag} \
  --src_image="${FLAGS_src_image}" \
  --noupdate_hostkey \
  --update_log="${FLAGS_update_log}" \
  --update_url="${FLAGS_update_url}" \
  --verify \
  ${IMAGE_ARGS} \
  ${QUICK_TEST_FLAGS}

