| 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}
|
|
|