Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: stateful_update

Issue 6626028: Modify stateful update clobber logic to write to different file. (Closed) Base URL: http://git.chromium.org/git/dev-util.git@master
Patch Set: Typo Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/sh 1 #!/bin/sh
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # This scripts performs update of stateful partition directories useful for 7 # This scripts performs update of stateful partition directories useful for
8 # dev_mode. 8 # dev_mode.
9 9
10 . /usr/lib/shflags 10 . /usr/lib/shflags
(...skipping 15 matching lines...) Expand all
26 } 26 }
27 27
28 update_dev_image () { 28 update_dev_image () {
29 LSB_RELEASE="/etc/lsb-release" 29 LSB_RELEASE="/etc/lsb-release"
30 STATEFUL_DIR="/mnt/stateful_partition" 30 STATEFUL_DIR="/mnt/stateful_partition"
31 31
32 if [ -n "${FLAGS_ARGV}" ]; then 32 if [ -n "${FLAGS_ARGV}" ]; then
33 BASE_UPDATE_URL=$(remove_quotes "${FLAGS_ARGV}") 33 BASE_UPDATE_URL=$(remove_quotes "${FLAGS_ARGV}")
34 else 34 else
35 if [ -f "${STATEFUL_DIR}${LSB_RELEASE}" ]; then 35 if [ -f "${STATEFUL_DIR}${LSB_RELEASE}" ]; then
36 DEVSERVER_URL=$(grep CHROMEOS_DEVSERVER ${STATEFUL_DIR}${LSB_RELEASE} | \ 36 DEVSERVER_URL=$(grep CHROMEOS_DEVSERVER ${STATEFUL_DIR}${LSB_RELEASE} |
37 cut -f 2 -d '=') 37 cut -f 2 -d '=')
38 fi 38 fi
39 if [ -z "${DEVSERVER_URL}" ]; then 39 if [ -z "${DEVSERVER_URL}" ]; then
40 DEVSERVER_URL=$(grep CHROMEOS_DEVSERVER ${LSB_RELEASE} | cut -f 2 -d '=') 40 DEVSERVER_URL=$(grep CHROMEOS_DEVSERVER ${LSB_RELEASE} | cut -f 2 -d '=')
41 fi 41 fi
42 # Sanity check. 42 # Sanity check.
43 if [ -z "${DEVSERVER_URL}" ]; then 43 if [ -z "${DEVSERVER_URL}" ]; then
44 echo >&2 "No CHROMEOS_DEVSERVER URL found in lsb-release file" 44 echo >&2 "No CHROMEOS_DEVSERVER URL found in lsb-release file"
45 exit 1 45 exit 1
46 fi 46 fi
47 # Devserver URL should never contain "/update" 47 # Devserver URL should never contain "/update"
48 DEVSERVER_URL=$(echo ${DEVSERVER_URL} | sed -e 's#/update##') 48 DEVSERVER_URL=$(echo ${DEVSERVER_URL} | sed -e 's#/update##')
49 BASE_UPDATE_URL="${DEVSERVER_URL}/static" 49 BASE_UPDATE_URL="${DEVSERVER_URL}/static"
50 fi 50 fi
51 51
52 STATEFUL_UPDATE_URL="${BASE_UPDATE_URL}/stateful.tgz" 52 STATEFUL_UPDATE_URL="${BASE_UPDATE_URL}/stateful.tgz"
53 echo "Downloading stateful payload from ${STATEFUL_UPDATE_URL}" 53 echo "Downloading stateful payload from ${STATEFUL_UPDATE_URL}"
54 # Download and unzip directories onto the stateful partition. 54 # Download and unzip directories onto the stateful partition.
55 eval "wget -qS -T 300 -O - \"${STATEFUL_UPDATE_URL}\"" | \ 55 eval "wget -qS -T 300 -O - \"${STATEFUL_UPDATE_URL}\"" |
56 tar --ignore-command-error --overwrite --directory=${STATEFUL_DIR} -xz 56 tar --ignore-command-error --overwrite --directory=${STATEFUL_DIR} -xz
57 echo >&2 "Successfully downloaded update" 57 echo >&2 "Successfully downloaded update"
58 58
59 if [ -d "${STATEFUL_DIR}/var_new" ] && [ -d "${STATEFUL_DIR}/dev_image_new" ] 59 if [ ! -d "${STATEFUL_DIR}/var_new" ] ||
60 then 60 [ ! -d "${STATEFUL_DIR}/dev_image_new" ]; then
61 echo >&2 "Notifying startup that an update is available" 61 echo >&2 "Missing var or dev_image in stateful payload."
62 touch "${STATEFUL_DIR}/.update_available" 62 return 1
63 else
64 echo >&2 "No update available"
65 fi 63 fi
66 } 64 }
67 65
68 update_old_state () { 66 update_old_state () {
69 echo >&2 "Performing standard stateful update." 67 echo >&2 "Performing standard stateful update."
68 echo -n "" > "${STATEFUL_DIR}/.update_available"
70 } 69 }
71 70
72 update_clean_state () { 71 update_clean_state () {
73 echo >&2 "Restoring state to factory_install with dev_image." 72 echo >&2 "Restoring state to factory_install with dev_image."
74 echo "fast test" > "/mnt/stateful_partition/factory_install_reset" 73 echo -n "clobber" > "${STATEFUL_DIR}/.update_available"
75 } 74 }
76 75
77 main () { 76 main () {
78 update_dev_image 77 if update_dev_image; then
79 if [ "${FLAGS_stateful_change}" = "${OLD_STATE}" ]; then 78 if [ "${FLAGS_stateful_change}" = "${OLD_STATE}" ]; then
80 update_old_state 79 update_old_state
81 elif [ "${FLAGS_stateful_change}" = "${CLEAN_STATE}" ]; then 80 elif [ "${FLAGS_stateful_change}" = "${CLEAN_STATE}" ]; then
82 update_clean_state 81 update_clean_state
82 else
83 echo >&2 "Invalid state given to stateful update. Aborting..."
84 return 1
85 fi
83 else 86 else
84 echo >&2 "Invalid state given to stateful update. Aborting..." 87 return 1
85 exit 1
86 fi 88 fi
87 } 89 }
88 90
89 main $@ 91 main $@
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698