| OLD | NEW |
| 1 #!/bin/sh | 1 #!/bin/sh |
| 2 | 2 |
| 3 # Load common constants. This should be the first executable line. | 3 # Load common constants. This should be the first executable line. |
| 4 # The path to common.sh should be relative to your script's location. | 4 # The path to common.sh should be relative to your script's location. |
| 5 . "$(dirname "$0")/common.sh" | 5 . "$(dirname "$0")/common.sh" |
| 6 | 6 |
| 7 # Flags | 7 # Flags |
| 8 DEFINE_string upgrade_server "" "SSH-capable host for upgrade server install" | 8 DEFINE_string upgrade_server "" "SSH-capable host for upgrade server install" |
| 9 DEFINE_string dest_path "" "Directory on host to do install" | 9 DEFINE_string dest_path "" "Directory on host to do install" |
| 10 DEFINE_string client_address "" "IP Address of netbook to update" | 10 DEFINE_string client_address "" "IP Address of netbook to update" |
| 11 DEFINE_string server_address "" "IP Address of upgrade server" | 11 DEFINE_string server_address "" "IP Address of upgrade server" |
| 12 DEFINE_boolean start_server ${FLAGS_TRUE} "Start up the server" | 12 DEFINE_boolean start_server ${FLAGS_TRUE} "Start up the server" |
| 13 DEFINE_boolean stop_server ${FLAGS_FALSE} "Start up the server" | 13 DEFINE_boolean stop_server ${FLAGS_FALSE} "Start up the server" |
| 14 DEFINE_boolean no_copy_archive ${FLAGS_FALSE} "Skip copy of files to server" |
| 14 DEFINE_string from "" "Image directory to upload to server" | 15 DEFINE_string from "" "Image directory to upload to server" |
| 15 | 16 |
| 16 # Parse command line | 17 # Parse command line |
| 17 FLAGS "$@" || exit 1 | 18 FLAGS "$@" || exit 1 |
| 18 eval set -- "${FLAGS_ARGV}" | 19 eval set -- "${FLAGS_ARGV}" |
| 19 | 20 |
| 20 set -e | 21 set -e |
| 21 | 22 |
| 22 # Make sure dev server argument has been set | 23 # Make sure dev server argument has been set |
| 23 require_upgrade_server () { | 24 require_upgrade_server () { |
| 24 if [ -z "${FLAGS_upgrade_server}" ] ; then | 25 if [ -z "${FLAGS_upgrade_server}" ] ; then |
| 25 echo "The --upgrade-server= argument is mandatory" | 26 echo "The --upgrade-server= argument is mandatory" |
| 26 exit 1 | 27 exit 1 |
| 27 fi | 28 fi |
| 28 } | 29 } |
| 29 | 30 |
| 30 # Make sure a pointer to the latest image has been created | 31 # Make sure a pointer to the latest image has been created |
| 31 require_latest_image () { | 32 require_latest_image () { |
| 32 [ -n "$latest_image" ] && return | 33 [ -n "$latest_image" ] && return |
| 33 if [ -n "${FLAGS_from}" ] ; then | 34 if [ -n "${FLAGS_from}" ] ; then |
| 34 latest_image=$(readlink -f ${FLAGS_from}) | 35 latest_image=$(readlink -f ${FLAGS_from}) |
| 35 else | 36 else |
| 36 latest_image=$(env CHROMEOS_BUILD_ROOT=${SCRIPTS_DIR}/../build \ | 37 latest_image=$(env CHROMEOS_BUILD_ROOT=${SCRIPTS_DIR}/../build \ |
| 37 » ${SCRIPTS_DIR}/get_latest_image.sh) | 38 ${SCRIPTS_DIR}/get_latest_image.sh) |
| 38 fi | 39 fi |
| 39 } | 40 } |
| 40 | 41 |
| 41 validate_devserver_path () { | 42 validate_devserver_path () { |
| 42 if [ $(expr "${FLAGS_dest_path}" : '\.\.') != 0 ]; then | 43 if [ $(expr "${FLAGS_dest_path}" : '\.\.') != 0 ]; then |
| 43 echo "Error: --dest_path argument (${FLAGS_dest_path}) must not be relative" | 44 echo "Error: --dest_path argument (${FLAGS_dest_path}) must not be relative" |
| 44 exit 1 | 45 exit 1 |
| 45 fi | 46 fi |
| 46 FLAGS_dest_path=/tmp/devserver/${FLAGS_dest_path##/tmp/devserver/} | 47 FLAGS_dest_path=/tmp/devserver/${FLAGS_dest_path##/tmp/devserver/} |
| 47 } | 48 } |
| 48 | 49 |
| 49 # Copy the various bits of the dev server scripts over to our remote host | 50 # Copy the various bits of the dev server scripts over to our remote host |
| 50 create_devserver () { | 51 create_devserver () { |
| 51 FLAGS_dest_path=$1 | 52 FLAGS_dest_path=$1 |
| 52 validate_devserver_path | 53 validate_devserver_path |
| 53 | 54 |
| 54 echo "Creating dev server in ${FLAGS_upgrade_server}:${FLAGS_dest_path}..." | 55 echo "Creating dev server in ${FLAGS_upgrade_server}:${FLAGS_dest_path}..." |
| 55 | 56 |
| 56 require_upgrade_server | 57 require_upgrade_server |
| 57 # Create new empty directory to hold server components | 58 # Create new empty directory to hold server components |
| 58 ssh "${FLAGS_upgrade_server}" rm -rf "${FLAGS_dest_path}" || true | 59 ssh "${FLAGS_upgrade_server}" rm -rf "${FLAGS_dest_path}" || true |
| 59 ssh "${FLAGS_upgrade_server}" mkdir -p "${FLAGS_dest_path}/python" | 60 ssh "${FLAGS_upgrade_server}" mkdir -p "${FLAGS_dest_path}/python" |
| 60 | 61 |
| 61 # Copy server components into place | 62 # Copy server components into place |
| 62 (cd ${SCRIPTS_DIR}/../.. && \ | 63 (cd ${SCRIPTS_DIR}/../.. && \ |
| 63 tar zcf - --exclude=.git --exclude=.svn \ | 64 tar zcf - --exclude=.git --exclude=.svn \ |
| 64 src/scripts/start_devserver \ | 65 src/scripts/start_devserver \ |
| 65 src/scripts/{common,get_latest_image,mk_memento_images}.sh \ | 66 src/scripts/{common,get_latest_image,mk_memento_images}.sh \ |
| (...skipping 30 matching lines...) Expand all Loading... |
| 96 # Since we are in static-only mode, we need to create a few links | 97 # Since we are in static-only mode, we need to create a few links |
| 97 for file in update.gz stateful.image.gz ; do | 98 for file in update.gz stateful.image.gz ; do |
| 98 ssh ${FLAGS_upgrade_server} "cd ${archive_dir} && ln -sf ${image_path}/$file
." | 99 ssh ${FLAGS_upgrade_server} "cd ${archive_dir} && ln -sf ${image_path}/$file
." |
| 99 ssh ${FLAGS_upgrade_server} "ln -sf ${archive_dir}/$file ${FLAGS_dest_path}/
src/platform/dev/static" | 100 ssh ${FLAGS_upgrade_server} "ln -sf ${archive_dir}/$file ${FLAGS_dest_path}/
src/platform/dev/static" |
| 100 done | 101 done |
| 101 } | 102 } |
| 102 | 103 |
| 103 stop_server () { | 104 stop_server () { |
| 104 require_upgrade_server | 105 require_upgrade_server |
| 105 echo "Stopping remote devserver..." | 106 echo "Stopping remote devserver..." |
| 106 echo "(Fast restart using \"$0 --upgrade_server=${FLAGS_upgrade_server} --dest
_path=${FLAGS_dest_path} --archive_dir=${archive_dir}\")" | 107 echo "(Fast restart using \"$0 --upgrade_server=${FLAGS_upgrade_server} --dest
_path=${FLAGS_dest_path} --no_copy_archive\")" |
| 107 ssh ${FLAGS_upgrade_server} pkill -f ${archive_dir} || /bin/true | 108 ssh ${FLAGS_upgrade_server} pkill -f ${archive_dir} || /bin/true |
| 108 } | 109 } |
| 109 | 110 |
| 110 # Start remote server | 111 # Start remote server |
| 111 start_server () { | 112 start_server () { |
| 112 require_upgrade_server | 113 require_upgrade_server |
| 113 echo "Starting remote devserver..." | 114 echo "Starting remote devserver..." |
| 114 server_logfile=/tmp/devserver_log.$$ | 115 server_logfile=/tmp/devserver_log.$$ |
| 115 portlist=/tmp/devserver_portlist.$$ | 116 portlist=/tmp/devserver_portlist.$$ |
| 116 echo "Server will be logging locally to $server_logfile" | 117 echo "Server will be logging locally to $server_logfile" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 require_latest_image | 154 require_latest_image |
| 154 hostname=$(uname -n) | 155 hostname=$(uname -n) |
| 155 hostname=${hostname%%.*} | 156 hostname=${hostname%%.*} |
| 156 image_name=${latest_image##*/} | 157 image_name=${latest_image##*/} |
| 157 create_devserver ${hostname}_${image_name} | 158 create_devserver ${hostname}_${image_name} |
| 158 FLAGS_start_server=${FLAGS_TRUE} | 159 FLAGS_start_server=${FLAGS_TRUE} |
| 159 else | 160 else |
| 160 validate_devserver_path | 161 validate_devserver_path |
| 161 fi | 162 fi |
| 162 | 163 |
| 163 if [ ${FLAGS_stop_server} -eq ${FLAGS_FALSE} ] ; then | 164 if [ ${FLAGS_stop_server} -eq ${FLAGS_FALSE} -a \ |
| 165 ${FLAGS_no_copy_archive} -eq ${FLAGS_FALSE} ] ; then |
| 164 create_archive_dir "${FLAGS_dest_path}/archive" | 166 create_archive_dir "${FLAGS_dest_path}/archive" |
| 165 FLAGS_start_server=${FLAGS_TRUE} | 167 FLAGS_start_server=${FLAGS_TRUE} |
| 166 else | 168 else |
| 167 archive_dir="${FLAGS_dest_path}/archive" | 169 archive_dir="${FLAGS_dest_path}/archive" |
| 168 fi | 170 fi |
| 169 | 171 |
| 170 if [ "${FLAGS_stop_server}" -eq ${FLAGS_TRUE} ] ; then | 172 if [ "${FLAGS_stop_server}" -eq ${FLAGS_TRUE} ] ; then |
| 171 stop_server | 173 stop_server |
| 172 exit 0 | 174 exit 0 |
| 173 fi | 175 fi |
| 174 | 176 |
| 175 # Make sure old devserver is dead, then restart it | 177 # Make sure old devserver is dead, then restart it |
| 176 if [ "${FLAGS_start_server}" -eq ${FLAGS_TRUE} ] ; then | 178 if [ "${FLAGS_start_server}" -eq ${FLAGS_TRUE} ] ; then |
| 177 stop_server | 179 stop_server |
| 178 start_server | 180 start_server |
| 179 | 181 |
| 180 tail -f ${server_logfile} & | 182 tail -f ${server_logfile} & |
| 181 | 183 |
| 182 # Now tell the client to load from the server | 184 # Now tell the client to load from the server |
| 185 if [ -z "${FLAGS_server_address}" ] ; then |
| 186 FLAGS_server_address=${FLAGS_upgrade_server} |
| 187 fi |
| 188 live_args="--update_url=http://${FLAGS_server_address}:${server_port}/update \ |
| 189 --remote=${FLAGS_client_address}" |
| 183 if [ -n "${FLAGS_client_address}" ] ; then | 190 if [ -n "${FLAGS_client_address}" ] ; then |
| 184 if [ -z "${FLAGS_server_address}" ] ; then | |
| 185 FLAGS_server_address=${FLAGS_upgrade_server} | |
| 186 fi | |
| 187 live_args="--update_url=http://${FLAGS_server_address}:${server_port}/update
\ | |
| 188 --remote=${FLAGS_client_address}" | |
| 189 echo "Running ${SCRIPTS_DIR}/image_to_live.sh $live_args" | 191 echo "Running ${SCRIPTS_DIR}/image_to_live.sh $live_args" |
| 190 ${SCRIPTS_DIR}/image_to_live.sh $live_args & | 192 ${SCRIPTS_DIR}/image_to_live.sh $live_args & |
| 193 else |
| 194 echo "Start client upgrade using:" |
| 195 echo " ${SCRIPTS_DIR}/image_to_live.sh ${live_args}<client_ip_address>" |
| 191 fi | 196 fi |
| 192 | 197 |
| 193 wait ${server_pid} | 198 wait ${server_pid} |
| 194 fi | 199 fi |
| 195 | 200 |
| OLD | NEW |