| Index: src/platform/installer/chromeos-setimage
 | 
| diff --git a/src/platform/installer/chromeos-setimage b/src/platform/installer/chromeos-setimage
 | 
| new file mode 100755
 | 
| index 0000000000000000000000000000000000000000..a661ceabe9f7f5d90852321d71148519734a788c
 | 
| --- /dev/null
 | 
| +++ b/src/platform/installer/chromeos-setimage
 | 
| @@ -0,0 +1,71 @@
 | 
| +#!/bin/sh -u
 | 
| +# Copyright (c) 2010 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.
 | 
| +#
 | 
| +# A script to display or change the preferred image
 | 
| +
 | 
| +# Load functions and constants for chromeos-install.
 | 
| +. "$(dirname "$0")/chromeos-common.sh" || exit 1
 | 
| +. /usr/lib/shflags || exit 1
 | 
| +
 | 
| +
 | 
| +# The default device is the one we booted from.
 | 
| +ROOTDEV=$(rootdev)
 | 
| +# From root partition to root block device.
 | 
| +DEFAULT_DST=$(get_block_dev_from_partition_dev ${ROOTDEV})
 | 
| +
 | 
| +DEFINE_string dst "${DEFAULT_DST}" "Boot device to update"
 | 
| +DEFINE_boolean run_as_root ${FLAGS_FALSE} \
 | 
| +  "Allow root to run this script (Careful, it won't prompt for a password!)"
 | 
| +
 | 
| +# Parse command line
 | 
| +FLAGS "$@" || exit 1
 | 
| +eval set -- "${FLAGS_ARGV}"
 | 
| +
 | 
| +set -e
 | 
| +
 | 
| +# Validate args.
 | 
| +if [ -n "${@:-}" ]; then
 | 
| +  if [ "$1" = "0" ] || [ "$1" = "A" ] || [ "$1" = "a" ]; then
 | 
| +    newimg=0
 | 
| +  elif [ "$1" = "1" ] || [ "$1" = "B" ] || [ "$1" = "b" ]; then
 | 
| +    newimg=1
 | 
| +  else
 | 
| +    echo "Usage: $0 [A|B]" 1>&2
 | 
| +    exit 1
 | 
| +  fi
 | 
| +fi
 | 
| +
 | 
| +
 | 
| +# Don't run this as root
 | 
| +dont_run_as_root
 | 
| +
 | 
| +# Check out the dst device.
 | 
| +if [ ! -b "$FLAGS_dst" ]
 | 
| +then
 | 
| +  echo "Error: Unable to find block device: $FLAGS_dst"
 | 
| +  exit 1
 | 
| +fi
 | 
| +
 | 
| +
 | 
| +# Mount the EFI System Partition
 | 
| +mountpoint=$(mktemp -d  /tmp/mountesp_XXXXXXXXX)
 | 
| +tempfile=$(mktemp /tmp/grubcfg_XXXXXXXXX)
 | 
| +sudo mount ${FLAGS_dst}12 ${mountpoint}
 | 
| +
 | 
| +# Make the change
 | 
| +if [ -n "${newimg:-}" ]; then
 | 
| +  sed -e "s/^set default=.*/set default=$newimg/" \
 | 
| +    ${mountpoint}/efi/boot/grub.cfg > ${tempfile}
 | 
| +  sudo cp ${tempfile} ${mountpoint}/efi/boot/grub.cfg
 | 
| +fi
 | 
| +
 | 
| +# Print the [new] default choice
 | 
| +grep -qs '^set default=0' ${mountpoint}/efi/boot/grub.cfg && echo "A"
 | 
| +grep -qs '^set default=1' ${mountpoint}/efi/boot/grub.cfg && echo "B"
 | 
| +
 | 
| +# Clean up
 | 
| +sudo umount ${mountpoint}
 | 
| +rm -f ${tempfile}
 | 
| +rmdir ${mountpoint}
 | 
| 
 |