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

Side by Side Diff: image_to_live.sh

Issue 4147002: Add delta update support to imaging tools. (Closed) Base URL: http://git.chromium.org/git/crosutils.git
Patch Set: indent Created 10 years, 1 month 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 | « bin/cros_run_vm_update ('k') | 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/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2009-2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2009-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 # Script to update an image onto a live running ChromiumOS instance. 7 # Script to update an image onto a live running ChromiumOS instance.
8 8
9 # Load common constants. This should be the first executable line. 9 # Load common constants. This should be the first executable line.
10 # The path to common.sh should be relative to your script's location. 10 # The path to common.sh should be relative to your script's location.
(...skipping 16 matching lines...) Expand all
27 "Path to log for the update_engine." 27 "Path to log for the update_engine."
28 DEFINE_boolean verify ${FLAGS_TRUE} "Verify image on device after update." 28 DEFINE_boolean verify ${FLAGS_TRUE} "Verify image on device after update."
29 29
30 # Flags for devserver. 30 # Flags for devserver.
31 DEFINE_string archive_dir "" \ 31 DEFINE_string archive_dir "" \
32 "Update using the test image in the image.zip in this directory." a 32 "Update using the test image in the image.zip in this directory." a
33 DEFINE_integer devserver_port 8080 \ 33 DEFINE_integer devserver_port 8080 \
34 "Port to use for devserver." 34 "Port to use for devserver."
35 DEFINE_string image "" \ 35 DEFINE_string image "" \
36 "Update with this image path that is in this source checkout." i 36 "Update with this image path that is in this source checkout." i
37 DEFINE_string src_image "" \
38 "Create a delta update by passing in the image on the remote machine."
37 DEFINE_boolean update_stateful ${FLAGS_TRUE} \ 39 DEFINE_boolean update_stateful ${FLAGS_TRUE} \
38 "Perform update of stateful partition e.g. /var /usr/local." 40 "Perform update of stateful partition e.g. /var /usr/local."
39 DEFINE_string update_url "" "Full url of an update image." 41 DEFINE_string update_url "" "Full url of an update image."
40 42
41 # Flags for stateful update. 43 # Flags for stateful update.
42 DEFINE_string stateful_update_flag "" \ 44 DEFINE_string stateful_update_flag "" \
43 "Flag to pass to stateful update e.g. old, clean, etc." s 45 "Flag to pass to stateful update e.g. old, clean, etc." s
44 46
45 UPDATER_BIN="/usr/bin/update_engine_client" 47 UPDATER_BIN="/usr/bin/update_engine_client"
46 UPDATER_IDLE="UPDATE_STATUS_IDLE" 48 UPDATER_IDLE="UPDATE_STATUS_IDLE"
(...skipping 30 matching lines...) Expand all
77 function get_hostname { 79 function get_hostname {
78 local hostname 80 local hostname
79 # Try to parse ifconfig for ip address 81 # Try to parse ifconfig for ip address
80 hostname=$(ifconfig eth0 \ 82 hostname=$(ifconfig eth0 \
81 | grep 'inet addr' \ 83 | grep 'inet addr' \
82 | sed 's/.\+inet addr:\(\S\+\).\+/\1/') || hostname=${HOSTNAME} 84 | sed 's/.\+inet addr:\(\S\+\).\+/\1/') || hostname=${HOSTNAME}
83 echo ${hostname} 85 echo ${hostname}
84 } 86 }
85 87
86 # Reinterprets path from outside the chroot for use inside. 88 # Reinterprets path from outside the chroot for use inside.
89 # Returns "" if "" given.
87 # $1 - The path to reinterpret. 90 # $1 - The path to reinterpret.
88 function reinterpret_path_for_chroot() { 91 function reinterpret_path_for_chroot() {
89 local path_abs_path=$(readlink -f "${1}") 92 if [ -z "${1}" ]; then
90 local gclient_root_abs_path=$(readlink -f "${GCLIENT_ROOT}") 93 echo ""
94 else
95 local path_abs_path=$(readlink -f "${1}")
96 local gclient_root_abs_path=$(readlink -f "${GCLIENT_ROOT}")
91 97
92 # Strip the repository root from the path. 98 # Strip the repository root from the path.
93 local relative_path=$(echo ${path_abs_path} \ 99 local relative_path=$(echo ${path_abs_path} \
kmixter1 2010/10/27 17:15:52 I think you can do this with less work: ${path_ab
94 | sed s:${gclient_root_abs_path}/::) 100 | sed s:${gclient_root_abs_path}/::)
95 101
96 if [ "${relative_path}" = "${path_abs_path}" ]; then 102 if [ "${relative_path}" = "${path_abs_path}" ]; then
97 die "Error reinterpreting path. Path ${1} is not within your source tree." 103 die "Error reinterpreting path. Path ${1} is not within source tree."
104 fi
105
106 # Prepend the chroot repository path.
107 echo "/home/${USER}/trunk/${relative_path}"
98 fi 108 fi
99
100 # Prepend the chroot repository path.
101 echo "/home/${USER}/trunk/${relative_path}"
102 } 109 }
103 110
104 function start_dev_server { 111 function start_dev_server {
105 kill_all_devservers 112 kill_all_devservers
106 local devserver_flags= 113 local devserver_flags=
107 # Parse devserver flags. 114 # Parse devserver flags.
108 if [ -n "${FLAGS_image}" ]; then 115 if [ -n "${FLAGS_image}" ]; then
109 devserver_flags="${devserver_flags} \ 116 devserver_flags="${devserver_flags} \
110 --image $(reinterpret_path_for_chroot ${FLAGS_image})" 117 --image $(reinterpret_path_for_chroot ${FLAGS_image})"
111 IMAGE_PATH="${FLAGS_image}" 118 IMAGE_PATH="${FLAGS_image}"
112
113 elif [ -n "${FLAGS_archive_dir}" ]; then 119 elif [ -n "${FLAGS_archive_dir}" ]; then
114 devserver_flags="${devserver_flags} \ 120 devserver_flags="${devserver_flags} \
115 --archive_dir $(reinterpret_path_for_chroot ${FLAGS_archive_dir}) -t" 121 --archive_dir $(reinterpret_path_for_chroot ${FLAGS_archive_dir}) -t"
116 IMAGE_PATH="${FLAGS_archive_dir}/chromiumos_test_image.bin" 122 IMAGE_PATH="${FLAGS_archive_dir}/chromiumos_test_image.bin"
117 else 123 else
118 # IMAGE_PATH should be the newest image and learn the board from 124 # IMAGE_PATH should be the newest image and learn the board from
119 # the target. 125 # the target.
120 FLAGS_board="" 126 FLAGS_board=""
121 learn_board 127 learn_board
122 IMAGE_PATH="$($(dirname "$0")/get_latest_image.sh --board="${FLAGS_board}")" 128 IMAGE_PATH="$($(dirname "$0")/get_latest_image.sh --board="${FLAGS_board}")"
123 IMAGE_PATH="${IMAGE_PATH}/chromiumos_image.bin" 129 IMAGE_PATH="${IMAGE_PATH}/chromiumos_image.bin"
124 fi 130 fi
125 131
132 devserver_flags="${devserver_flags} \
133 --src_image=\"$(reinterpret_path_for_chroot ${FLAGS_src_image})\""
134
126 info "Starting devserver with flags ${devserver_flags}" 135 info "Starting devserver with flags ${devserver_flags}"
127 ./enter_chroot.sh "sudo ./start_devserver ${devserver_flags} \ 136 ./enter_chroot.sh "sudo ./start_devserver ${devserver_flags} \
128 --client_prefix=ChromeOSUpdateEngine \ 137 --client_prefix=ChromeOSUpdateEngine \
129 --port=${FLAGS_devserver_port} > ${FLAGS_server_log} 2>&1" & 138 --port=${FLAGS_devserver_port} > ${FLAGS_server_log} 2>&1" &
130 139
131 echo -n "Waiting on devserver to start" 140 echo -n "Waiting on devserver to start"
132 until netstat -anp 2>&1 | grep 0.0.0.0:${FLAGS_devserver_port} > /dev/null 141 until netstat -anp 2>&1 | grep 0.0.0.0:${FLAGS_devserver_port} > /dev/null
133 do 142 do
134 sleep .5 143 sleep .5
135 echo -n "." 144 echo -n "."
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 local release_description=$(echo ${REMOTE_OUT} | cut -d '=' -f 2) 383 local release_description=$(echo ${REMOTE_OUT} | cut -d '=' -f 2)
375 info "Update was successful and rebooted to $release_description" 384 info "Update was successful and rebooted to $release_description"
376 fi 385 fi
377 386
378 print_time_elapsed 387 print_time_elapsed
379 388
380 exit 0 389 exit 0
381 } 390 }
382 391
383 main $@ 392 main $@
OLDNEW
« no previous file with comments | « bin/cros_run_vm_update ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698