Index: src/platform/dev/stateful_update.sh |
diff --git a/src/platform/dev/stateful_update.sh b/src/platform/dev/stateful_update.sh |
new file mode 100755 |
index 0000000000000000000000000000000000000000..9274618abf112537904cc8237e58675d0f4cb099 |
--- /dev/null |
+++ b/src/platform/dev/stateful_update.sh |
@@ -0,0 +1,49 @@ |
+#!/bin/sh |
+ |
+# Copyright (c) 2010 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. |
+ |
+# This scripts performs update of stateful partition directories useful for |
+# dev_mode. |
+ |
+# Die on error. |
+set -e |
+ |
+STATEFUL_DIR="/mnt/stateful_partition" |
+STATEFUL_IMAGE="$STATEFUL_DIR/stateful.image" |
+STATEFUL_MOUNT_POINT="/tmp/s" |
+ |
+PING_OMAHA=/opt/google/memento_updater/ping_omaha.sh |
+ |
+# Get image url for stateful image |
+OMAHA_CHECK_OUTPUT=$($PING_OMAHA --app_version ForcedUpdate 2> /dev/null) |
+ROOT_UPDATE_URL=$(echo "$OMAHA_CHECK_OUTPUT" | grep '^URL=' | cut -d = -f 2-) |
+STATEFUL_UPDATE_URL="$(dirname "$ROOT_UPDATE_URL")/stateful.image.gz" |
+ |
+# Prepare directories for update. |
+rm -rf "$STATEFUL_DIR/var_new" "$STATEFUL_DIR/dev_image_new" |
+ |
+# Prepare and mount new stateful partition. |
+rm -rf "$STATEFUL_MOUNT_POINT" |
+mkdir -p "$STATEFUL_MOUNT_POINT" |
+ |
+# Unzip mount and copy the relevant directories. |
+# Get the update. |
+eval "wget -O - \"$STATEFUL_UPDATE_URL\"" | gzip -d > $STATEFUL_IMAGE |
+trap "rm -f \"$STATEFUL_IMAGE\"" EXIT |
+mount -n -o loop "$STATEFUL_IMAGE" "$STATEFUL_MOUNT_POINT" |
+if [ -d "$STATEFUL_MOUNT_POINT/var" ] && \ |
+ [ -d "$STATEFUL_MOUNT_POINT/dev_image" ] ; then |
+ cp -rf "$STATEFUL_MOUNT_POINT/var" "$STATEFUL_DIR/var_new" |
+ cp -rf "$STATEFUL_MOUNT_POINT/dev_image" "$STATEFUL_DIR/dev_image_new" |
+ touch "$STATEFUL_DIR/.update_available" |
+else |
+ echo "No update available" |
+fi |
+ |
+umount -n -d "$STATEFUL_MOUNT_POINT" |
+ |
+rm -f "$STATEFUL_IMAGE" |
+ |
+trap - EXIT |