diff options
author | Jannis Pohlmann <jannis.pohlmann@codethink.co.uk> | 2012-03-27 14:00:21 +0000 |
---|---|---|
committer | Jannis Pohlmann <jannis.pohlmann@codethink.co.uk> | 2012-03-27 14:06:45 +0000 |
commit | 54d222fc53cdc96fec8ac156e9d3e41d520e0bcd (patch) | |
tree | e4f80239d426e2f13076d517527b9cca0082dd93 /tbdiff-update/tbdiff-update | |
parent | 93a1461ba77603e51fe8fc9fa0c021e81b84917d (diff) | |
download | tbdiff-54d222fc53cdc96fec8ac156e9d3e41d520e0bcd.tar.gz |
Rename tbdiff-update to tb-update.
Diffstat (limited to 'tbdiff-update/tbdiff-update')
-rwxr-xr-x | tbdiff-update/tbdiff-update | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/tbdiff-update/tbdiff-update b/tbdiff-update/tbdiff-update deleted file mode 100755 index 1014a3c..0000000 --- a/tbdiff-update/tbdiff-update +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2011-2012 Codethink Ltd. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License Version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# vi:set ts=8 sw=8 noet ai nocindent: - -set -e -set -x - -# read input parameters -device="$1" -source_subvolume="$2" -target_subvolume="$3" -patch_file="$4" - -# print usage information if not all parameters are provided -if [ -z "$device" ] || - [ -z "$source_subvolume" ] || - [ -z "$target_subvolume" ] || - [ -z "$patch_file" ] -then - echo "Usage: $0 <device> <source subvolume> <target subvolume> <patch file>" >&2 - exit 1 -fi - -if [ ! -f "$patch_file" ]; then - echo "Patch file \"$patch_file\" does not exist" >&2 - exit 1 -fi - -# mount the root btrfs file system -rootfs="$(busybox mktemp -d)" -mount -t btrfs "$device" "$rootfs" -trap "cd /; umount $rootfs && busybox rm -rf $rootfs" EXIT SIGINT SIGTERM - -# switch into the root file system -cd "$rootfs" - -# verify that the source subvolume exists -if [ ! -e "$source_subvolume" ]; then - echo "Source subvolume \"$source_subvolume\" does not exist in $device" >&2 - exit 1 -fi - -# verify that the source subvolume is a directory -if [ ! -d "$source_subvolume" ]; then - echo "Source subvolume \"$source_subvolume\" is not a directory" >&2 - exit 1 -fi - -# verify that the target subvolume does not yet exist -if [ -e "$target_subvolume" ]; then - echo "Target subvolume \"$target_subvolume\" already exists" >&2 - exit 1 -fi - -# verify that the target subvolume's -run snapshot does not yet exist -if [ -e "$target_subvolume-run" ]; then - echo "Target subvolume's \"$target_subvolume-run\" snapshot already exists" >&2 - exit 1 -fi - -echo "Creating snapshot \"$target_subvolume\" from \"$source_subvolume\"" - -# create a snapshot for the target subvolume -if ! btrfs subvolume snapshot "$source_subvolume" "$target_subvolume"; then - echo "Failed to create the target subvolume \"$target_subvolume\"" >&2 - exit 1 -fi - -# switch to the target subvolume -cd "$target_subvolume" - -echo "Applying the patch \"$patch_file\" to \"$target_subvolume\"" - -# apply the patch to this subvolume -tbdiff-deploy "$patch_file" - -# leave the subvolume -cd "$rootfs" - -echo "Creating snapshot \"$target_subvolume-run\" from \"$target_subvolume\"" - -# create a -run snapshot for the target subvolume -btrfs subvolume snapshot "$target_subvolume" "$target_subvolume-run" - -echo "Copying boot files to the root file system" - -# copy boot files to the root file system -busybox cp "$target_subvolume/boot/vmlinuz" "boot/vmlinuz" -busybox cp "$target_subvolume/boot/System.map" "boot/System.map" -busybox cp "$target_subvolume/extlinux.conf" "extlinux.conf" - -echo "Configuring extlinux to boot from \"$target_subvolume-run\"" - -busybox sed -i -e "s,factory-run,$target_subvolume-run,g" "extlinux.conf" - -# clear the traps -trap EXIT SIGINT SIGTERM - -# leave the root file system -cd / - -# unmount the root file system -umount "$rootfs" - -# remove the temporary directory -rm -rf "$rootfs" - -# reboot the system -busybox reboot |