Corrections : etc/nsd/zone.d/heureux-cyclage.org.zone.m4
[lhc/ateliers.git] / local / backup / mysql-snapshot
index 5140ffc..24a07f3 100755 (executable)
@@ -15,11 +15,17 @@ test ! $# = 0 || set -- :
 install -d -m 770 -o backup -g backup \
  ~backup/snapshot/mysql
 
-snapshot () {
-       local database="$1"; shift
-       test ! -e ~backup/snapshot/mysql/$database
-               # NOTE: soit une sauvegarde est déjà en cours,
-               #       soit une précédente a échoué.
+errno=0
+while IFS='' read -r database
+ do {
+       test "${database:+set}"
+       if test -e ~backup/snapshot/mysql/$database
+        then
+               cat >&2 <<-EOF
+                       ERROR: soit une sauvegarde est déjà en cours, soit une précédente a échoué.
+                       EOF
+               false
+        fi
        can_hotcopy=yes
        while IFS='     ' read -r table engine
         do
@@ -29,10 +35,10 @@ snapshot () {
                 esac
         done <<-EOF
                $(mysql -u backup --batch --skip-column-names <<-EOF
-                               SELECT table_name,engine
-                                       FROM information_schema.tables
-                                       WHERE table_schema = '$database';
-                               EOF
+                       SELECT table_name,engine
+                               FROM information_schema.tables
+                               WHERE table_schema = '$database';
+                       EOF
                 )
                EOF
        case $can_hotcopy in
@@ -56,17 +62,15 @@ snapshot () {
        eval "$@"
        rm -rf \
         ~backup/snapshot/mysql/"$database"
- }
-
-exit=0
-while IFS='    ' read -r database
- do if ! snapshot "$database" "$@"
-        then
-               exit=1
-               cat >&2 <<-EOF
-                       ERROR: snapshot "$database" "$@"
-                       EOF
+ } || {
+       errno=$?
+       cat >&2 <<-EOF
+               ERROR: $0 "$database" "$@"
+               EOF
+       if test "${database:+set}"
+        then rm -rf ~backup/snapshot/mysql/"$database"
         fi
+ }
  done <<-EOF
        $(mysql -u backup --batch --skip-column-names <<-EOF
                SELECT schema_name
@@ -76,4 +80,4 @@ while IFS='   ' read -r database
                EOF
         )
        EOF
-exit $exit
+exit $errno