blob: 9274618abf112537904cc8237e58675d0f4cb099 [file] [log] [blame]
Chris Sosaa73ec162010-05-03 20:18:02 -07001#!/bin/sh
2
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
5# found in the LICENSE file.
6
7# This scripts performs update of stateful partition directories useful for
8# dev_mode.
9
10# Die on error.
11set -e
12
13STATEFUL_DIR="/mnt/stateful_partition"
14STATEFUL_IMAGE="$STATEFUL_DIR/stateful.image"
15STATEFUL_MOUNT_POINT="/tmp/s"
16
17PING_OMAHA=/opt/google/memento_updater/ping_omaha.sh
18
19# Get image url for stateful image
20OMAHA_CHECK_OUTPUT=$($PING_OMAHA --app_version ForcedUpdate 2> /dev/null)
21ROOT_UPDATE_URL=$(echo "$OMAHA_CHECK_OUTPUT" | grep '^URL=' | cut -d = -f 2-)
22STATEFUL_UPDATE_URL="$(dirname "$ROOT_UPDATE_URL")/stateful.image.gz"
23
24# Prepare directories for update.
25rm -rf "$STATEFUL_DIR/var_new" "$STATEFUL_DIR/dev_image_new"
26
27# Prepare and mount new stateful partition.
28rm -rf "$STATEFUL_MOUNT_POINT"
29mkdir -p "$STATEFUL_MOUNT_POINT"
30
31# Unzip mount and copy the relevant directories.
32# Get the update.
33eval "wget -O - \"$STATEFUL_UPDATE_URL\"" | gzip -d > $STATEFUL_IMAGE
34trap "rm -f \"$STATEFUL_IMAGE\"" EXIT
35mount -n -o loop "$STATEFUL_IMAGE" "$STATEFUL_MOUNT_POINT"
36if [ -d "$STATEFUL_MOUNT_POINT/var" ] && \
37 [ -d "$STATEFUL_MOUNT_POINT/dev_image" ] ; then
38 cp -rf "$STATEFUL_MOUNT_POINT/var" "$STATEFUL_DIR/var_new"
39 cp -rf "$STATEFUL_MOUNT_POINT/dev_image" "$STATEFUL_DIR/dev_image_new"
40 touch "$STATEFUL_DIR/.update_available"
41else
42 echo "No update available"
43fi
44
45umount -n -d "$STATEFUL_MOUNT_POINT"
46
47rm -f "$STATEFUL_IMAGE"
48
49trap - EXIT