From fd83e8fa0d053d841fda5df4356e28c75aa59f22 Mon Sep 17 00:00:00 2001 From: Magnus Enger Date: Mon, 14 Oct 2013 21:10:31 +0200 Subject: [PATCH] Bug 10782 - Add a koha-mysqlcheck script This patch adds the koha-mysqlcheck script, as a "frontend" for the mysqlcheck command. It can be used to check the integrity of database tables, as well as to repair them. See "man mysqlcheck" for more information. The script takes a Koha instance name as its only required parameter. Any other parameters provided before the instance name are passed directly to mysqlcheck, which means that all the functionality of mysqlcheck is available through this script. To test the script: - Apply the patch, build your own packages and install them, or - copy koha-mysqlcheck to a server already running off packages - Run some variations of the command, with and without arguments, and check that the output makes sense. E.g.: sudo koha-mysqlcheck myinstance sudo koha-mysqlcheck -e myinstance # Extended checks sudo koha-mysqlcheck -e -v myinstance # Extended checks and verbose - See "man mysqlcheck" for other relevant options To test the man page: - Run these commands and look at the formatted man page: $ xsltproc /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \ debian/docs/koha-mysqlcheck.xml $ man -l koha-mysqlcheck.8 - Make sure this test passes: $ prove -v xt/verify-debian-docbook.t Signed-off-by: Chris Cormack Signed-off-by: Martin Renvoize Signed-off-by: Galen Charlton (cherry picked from commit 25c932967f9def41b689b07f4536f398b612944b) --- debian/docs/koha-mysqlcheck.xml | 44 ++++++++++++++++++++++++++++++ debian/scripts/koha-mysqlcheck | 48 +++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 debian/docs/koha-mysqlcheck.xml create mode 100755 debian/scripts/koha-mysqlcheck diff --git a/debian/docs/koha-mysqlcheck.xml b/debian/docs/koha-mysqlcheck.xml new file mode 100644 index 0000000000..88b01d715c --- /dev/null +++ b/debian/docs/koha-mysqlcheck.xml @@ -0,0 +1,44 @@ +
+koha-mysqlcheck + +Koha is the first free software library automation package. + + The Koha Community + http://koha-community.org/ + + + + + + + koha-mysqlcheck + 8 + + + + koha-mysqlcheck + Run mysqlcheck on the database of the specified Koha instance. + UNIX/Linux + + + + + koha-mysqlcheck instancename + + + + Description + Run mysqlcheck on the database of the specified Koha instance. + Any arguments provided before the name of the instance are passed directly to mysqlcheck. This means that all the operations of mysqlcheck are available through this script. + + + See also + + mysqlcheck(1) + koha-mysql(8) + + + + + +
diff --git a/debian/scripts/koha-mysqlcheck b/debian/scripts/koha-mysqlcheck new file mode 100755 index 0000000000..5a5286b481 --- /dev/null +++ b/debian/scripts/koha-mysqlcheck @@ -0,0 +1,48 @@ +#!/bin/bash +# +# koha-mysqlcheck: run mysqlcheck on the database of the specified Koha instance. +# Copyright 2013 Magnus Enger Librioech +# Based on koha-mysql, which is Copyright 2011 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 + +umask 0077 + +die() { + echo "$@" 1>&2 + exit 1 +} + +# Parse command line. +if [ $# -lt 1 ]; then + die "Usage: $0 [options] instancename" +fi + +# Separate any arguments from the instance name +array=($@) +len=${#array[@]} +name=${array[$len-1]} +args=${array[@]:0:$len-1} + +kohaconfig="/etc/koha/sites/$name/koha-conf.xml" + +mysqlhost="$( xmlstarlet sel -t -v 'yazgfs/config/hostname' $kohaconfig )" +mysqldb="$( xmlstarlet sel -t -v 'yazgfs/config/database' $kohaconfig )" +mysqluser="$( xmlstarlet sel -t -v 'yazgfs/config/user' $kohaconfig )" +mysqlpass="$( xmlstarlet sel -t -v 'yazgfs/config/pass' $kohaconfig )" + +mysqlcheck --host="$mysqlhost" --user="$mysqluser" --password="$mysqlpass" \ + $args "$mysqldb" -- 2.39.5