blob: 5ed234582bcf68d4069eefe4d92da9b132bf603f [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
Sean O'Connora7f867e2010-05-27 17:53:32 -070019if [ -n "$1" ] ; then
20 OMAHA_ARG="--omaha_url=$1"
21fi
22
Chris Sosaa73ec162010-05-03 20:18:02 -070023# Get image url for stateful image
Sean O'Connora7f867e2010-05-27 17:53:32 -070024OMAHA_CHECK_OUTPUT=$($PING_OMAHA --app_version ForcedUpdate \
25 "$OMAHA_ARG" 2> /dev/null)
Chris Sosaa73ec162010-05-03 20:18:02 -070026ROOT_UPDATE_URL=$(echo "$OMAHA_CHECK_OUTPUT" | grep '^URL=' | cut -d = -f 2-)
27STATEFUL_UPDATE_URL="$(dirname "$ROOT_UPDATE_URL")/stateful.image.gz"
28
29# Prepare directories for update.
30rm -rf "$STATEFUL_DIR/var_new" "$STATEFUL_DIR/dev_image_new"
31
32# Prepare and mount new stateful partition.
33rm -rf "$STATEFUL_MOUNT_POINT"
34mkdir -p "$STATEFUL_MOUNT_POINT"
35
36# Unzip mount and copy the relevant directories.
37# Get the update.
38eval "wget -O - \"$STATEFUL_UPDATE_URL\"" | gzip -d > $STATEFUL_IMAGE
39trap "rm -f \"$STATEFUL_IMAGE\"" EXIT
40mount -n -o loop "$STATEFUL_IMAGE" "$STATEFUL_MOUNT_POINT"
41if [ -d "$STATEFUL_MOUNT_POINT/var" ] && \
42 [ -d "$STATEFUL_MOUNT_POINT/dev_image" ] ; then
43 cp -rf "$STATEFUL_MOUNT_POINT/var" "$STATEFUL_DIR/var_new"
44 cp -rf "$STATEFUL_MOUNT_POINT/dev_image" "$STATEFUL_DIR/dev_image_new"
45 touch "$STATEFUL_DIR/.update_available"
46else
47 echo "No update available"
48fi
49
50umount -n -d "$STATEFUL_MOUNT_POINT"
51
52rm -f "$STATEFUL_IMAGE"
53
Sean O'Connora7f867e2010-05-27 17:53:32 -070054trap - EXIT