#!/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" \
  --for_vm \
  --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}

