OLD | NEW |
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 . $(dirname "$(readlink -f "$0")")/outside_chroot_common.sh || | 8 . $(dirname "$(readlink -f "$0")")/outside_chroot_common.sh || |
9 SCRIPT_ROOT=/usr/lib/crosutils | 9 SCRIPT_ROOT=/usr/lib/crosutils |
10 | 10 |
11 . "${SCRIPT_ROOT}/common.sh" || | 11 . "${SCRIPT_ROOT}/common.sh" || |
12 (echo "Unable to load common.sh" && false) || | 12 (echo "Unable to load common.sh" && false) || |
13 exit 1 | 13 exit 1 |
14 | 14 |
15 . "${SCRIPT_ROOT}/remote_access.sh" || die "Unable to load remote_access.sh" | 15 . "${SCRIPT_ROOT}/remote_access.sh" || die "Unable to load remote_access.sh" |
16 | 16 |
17 # Flags to control image_to_live. | 17 # Flags to control image_to_live. |
18 DEFINE_boolean ignore_hostname ${FLAGS_TRUE} \ | 18 DEFINE_boolean ignore_hostname ${FLAGS_TRUE} \ |
19 "Ignore existing AU hostname on running instance use this hostname." | 19 "Ignore existing AU hostname on running instance use this hostname." |
20 DEFINE_boolean ignore_version ${FLAGS_TRUE} \ | 20 DEFINE_boolean ignore_version ${FLAGS_TRUE} \ |
21 "Ignore existing version on running instance and always update." | 21 "Ignore existing version on running instance and always update." |
| 22 DEFINE_string netdev "eth0" \ |
| 23 "The network device to use for figuring out hostname. \ |
| 24 This is useful on hosts with multiple NICs." |
22 DEFINE_string server_log "dev_server.log" \ | 25 DEFINE_string server_log "dev_server.log" \ |
23 "Path to log for the devserver." | 26 "Path to log for the devserver." |
24 DEFINE_boolean update "${FLAGS_TRUE}" \ | 27 DEFINE_boolean update "${FLAGS_TRUE}" \ |
25 "Perform update of root partition." | 28 "Perform update of root partition." |
26 DEFINE_boolean update_known_hosts ${FLAGS_FALSE} \ | 29 DEFINE_boolean update_known_hosts ${FLAGS_FALSE} \ |
27 "Update your known_hosts with the new remote instance's key." | 30 "Update your known_hosts with the new remote instance's key." |
28 DEFINE_string update_log "update_engine.log" \ | 31 DEFINE_string update_log "update_engine.log" \ |
29 "Path to log for the update_engine." | 32 "Path to log for the update_engine." |
30 DEFINE_string update_url "" "Full url of an update image." | 33 DEFINE_string update_url "" "Full url of an update image." |
31 DEFINE_boolean verify ${FLAGS_TRUE} "Verify image on device after update." | 34 DEFINE_boolean verify ${FLAGS_TRUE} "Verify image on device after update." |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 # some targets may have dns resolution issues trying to contact back | 88 # some targets may have dns resolution issues trying to contact back |
86 # to us. | 89 # to us. |
87 function get_hostname { | 90 function get_hostname { |
88 local hostname | 91 local hostname |
89 # Try to parse ifconfig for ip address. Use sudo, because not all distros | 92 # Try to parse ifconfig for ip address. Use sudo, because not all distros |
90 # allow a common user to call ifconfig. | 93 # allow a common user to call ifconfig. |
91 # TODO(zbehan): What if target is not connected via eth0? Update over wifi? | 94 # TODO(zbehan): What if target is not connected via eth0? Update over wifi? |
92 # Dedicated usb NIC? Perhaps this detection should be done in the target, | 95 # Dedicated usb NIC? Perhaps this detection should be done in the target, |
93 # which will get the return address in one way or another. Or maybe we should | 96 # which will get the return address in one way or another. Or maybe we should |
94 # just open a ssh tunnel and use localhost. | 97 # just open a ssh tunnel and use localhost. |
95 hostname=$(/sbin/ifconfig eth0 | | 98 hostname=$(/sbin/ifconfig ${FLAGS_netdev} | |
96 grep 'inet addr' | | 99 grep 'inet addr' | |
97 cut -f2 -d':' | | 100 cut -f2 -d':' | |
98 cut -f1 -d' ') | 101 cut -f1 -d' ') |
99 | 102 |
100 # Fallback to $HOSTNAME if that failed | 103 # Fallback to $HOSTNAME if that failed |
101 [ -z "${hostname}" ] && hostname=${HOSTNAME} | 104 [ -z "${hostname}" ] && hostname=${HOSTNAME} |
102 | 105 |
103 echo ${hostname} | 106 echo ${hostname} |
104 } | 107 } |
105 | 108 |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 local release_description=$(echo ${REMOTE_OUT} | cut -d '=' -f 2) | 423 local release_description=$(echo ${REMOTE_OUT} | cut -d '=' -f 2) |
421 info "Update was successful and rebooted to $release_description" | 424 info "Update was successful and rebooted to $release_description" |
422 fi | 425 fi |
423 | 426 |
424 print_time_elapsed | 427 print_time_elapsed |
425 | 428 |
426 exit 0 | 429 exit 0 |
427 } | 430 } |
428 | 431 |
429 main $@ | 432 main $@ |
OLD | NEW |