blob: b42e7a5d2cc546a1e1d140c003b99746a96eaff3 [file] [log] [blame] [edit]
#!/bin/sh
# Copyright (c) 2013 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.
set -e
# Check if user is root
if [ $(/usr/bin/id -u) -ne 0 ]; then
echo -n "ERROR: Can not run script. "
echo "You are not root, or you did not use sudo.\n"
exit 1
fi
# Check if Chrome OS device is properly configured
if [ ! -e "/etc/lsb-release" ]; then
echo -n "ERROR: Script must be run on a Chrome OS device with an "
echo "/etc/lsb-release file.\n"
exit 1
fi
# Get current version from /etc/lsb-release
installed_version=$(grep -E "CHROMEOS_RELEASE_VERSION" /etc/lsb-release |
grep -Eo "[0-9].+")
echo "Release version installed: ${installed_version}"
# Create /mnt/stateful_partition/etc/lsb-release if none.
test_lsb_dir="/mnt/stateful_partition/etc"
test_lsb_file="${test_lsb_dir}/lsb-release"
if [ ! -e ${test_lsb_file} ]; then
echo "Created file: ${test_lsb_file}"
mkdir -p -m 0600 ${test_lsb_dir}
touch ${test_lsb_file}
chmod 0600 ${test_lsb_file}
fi
# Append CHROMEOS_AUSERVER if none. Exit if not equal to dev_test_server.
dev_test_auserver=("http://cros-hwqual-5.mtv.corp.google.com:15001/"
"service/update2")
chromeos_auserver=$(grep -E "CHROMEOS_AUSERVER" ${test_lsb_file} |
grep -Eo "http.+" || true)
if [ -z ${chromeos_auserver} ]; then
echo "CHROMEOS_AUSERVER=${dev_test_auserver}" >> ${test_lsb_file}
else
if [ ${chromeos_auserver} != ${dev_test_auserver} ]; then
echo -n "ERROR: CHROMEOS_AUSERVER is already defined as "
echo "${chromeos_auserver}."
echo "Delete or move ${test_lsb_file}, and run again."
exit 1
fi
fi
# Append CHROMEOS_RELEASE_VERSION if none. Exit if not equal to start_version
start_version="0.0.0"
release_version=$(grep -E "CHROMEOS_RELEASE_VERSION" ${test_lsb_file} |
grep -Eo "[0-9].+" || true)
if [ -z ${release_version} ]; then
echo "CHROMEOS_RELEASE_VERSION=${start_version}" >> ${test_lsb_file}
else
if [ ${release_version} != ${start_version} ]; then
echo -n "ERROR: CHROMEOS_RELEASE_VERSION is already defined as "
echo "${release_version}."
echo "Delete or move ${test_lsb_file}, and run again."
exit 1
fi
fi
# Clear the /var/lib/update_engine/prefs directory. This will prevent
# download delays caused by pre-existing backoff counts.
stop -q update-engine
rm -f /var/lib/update_engine/prefs/*
start -q update-engine
# Run update_engine_client
echo "Running update_engine_client with following lsb-release config:"
cat "${test_lsb_file}"
echo ""
update_engine_client -check_for_update && tail -f /var/log/update_engine.log