#!/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 board "$DEFAULT_BOARD" \
  "The board for which you built autotest." b
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}" "${FLAGS_board}"
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}

