From ebd3231d1b035084205d8c433454cc5bbfb115d8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 25 May 2010 13:44:14 +1200 Subject: [PATCH] Add koha-restore, a script to restore a Koha instance from a dump. Signed-off-by: Galen Charlton --- debian/scripts/koha-restore | 81 +++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100755 debian/scripts/koha-restore diff --git a/debian/scripts/koha-restore b/debian/scripts/koha-restore new file mode 100755 index 0000000000..d6e324e34f --- /dev/null +++ b/debian/scripts/koha-restore @@ -0,0 +1,81 @@ +#!/bin/sh +# +# koha-restore: restore a Koha site from a dump (from koha-dump) +# Copyright 2010 Catalyst IT, Ltd +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# 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, see . + + +set -e + + +die() { + echo "$@" 1>&2 + exit 1 +} + + +# Parse command line. +[ "$#" = 2 ] || die "Usage: $0 sqldump configdump" +sqldump="$1" +configdump="$2" + + +# Verify that no files in the config dump exist on the filesystem. +anyexists=no +tar -tf "$configdump" | +while read x +do + if [ -e "/$x" ] + then + anyexists=yes + echo "ERROR: File exists: /$x" 1>&2 + fi +done +if [ "$anyexists" = yes ] +then + die "Config dump $configdump has files that exist on the filesystem." +fi + + +# Create user and group. +name=$(tar tf "$configdump" | + sed -n '/^etc\/koha\/sites\/\([^/]*\)\/$/s//\1/p') +username="$name-koha" +adduser --no-create-home --disabled-login --gecos "Koha instance $username" \ + --quiet "$username" + + +# Unpack tarball. +tar -C / -xf "$configdump" + + +# Re-create database and database user. +mysqldb="koha_$name" +mysqluser="koha_$name" +mysqlpwd="$(sed -n '/.*\(.*\)<\/pass>.*/s//\1/p' /etc/koha/sites/$name/koha-conf.xml)" +zcat "$sqldump" | mysql --defaults-extra-file=/etc/mysql/debian.cnf +mysql --defaults-extra-file=/etc/mysql/debian.cnf <