Add options DRY_RUN and NO_CONFIRM to upgrade scripts
authorRaphaël Barrois <raphael.barrois@polytechnique.org>
Sun, 30 May 2010 11:37:13 +0000 (13:37 +0200)
committerRaphaël Barrois <raphael.barrois@polytechnique.org>
Sun, 6 Jun 2010 23:46:09 +0000 (01:46 +0200)
Adds a mysql_exec function to execute a simple query

Signed-off-by: Raphaël Barrois <raphael.barrois@polytechnique.org>
upgrade/inc/pervasive.sh

index 2206abc..94cb23b 100755 (executable)
@@ -23,18 +23,34 @@ function die() {
 }
 
 function confirm() {
-    echo "$1"
-    echo "* press ^D to start import (^C to cancel)"
-    cat
+    if [[ -n "${NO_CONFIRM}" ]]; then
+        echo "$1"
+        echo "* press ^C to cancel, waiting 5 seconds..."
+        sleep 5
+    else
+        echo "$1"
+        echo "* press ^D to start import (^C to cancel)"
+        cat
+    fi
 }
 
 function mysql_pipe() {
     sed -e "s/#\([0-9a-z]*\)#/${DBPREFIX}\1/g" | $MYSQL $DATABASE
 }
 
+function mysql_exec() {
+    echo -n " * executing $1 "
+    if [[ -z "${DRY_RUN}" ]]; then
+        (echo $1 | mysql_pipe) || die "ERROR"
+    fi
+    echo "OK"
+}
+
 function mysql_run() {
-    echo -n "* running $1"
-    (cat $1 | mysql_pipe) || die "ERROR"
+    echo -n " * running $1 "
+    if [[ -z "${DRY_RUN}" ]]; then
+        (cat $1 | mysql_pipe) || die "ERROR"
+    fi
     echo "OK"
 }
 
@@ -45,26 +61,34 @@ function mysql_run_directory() {
 }
 
 function script_run() {
-    echo -n "* running $1"
-    $1 || die "ERROR"
+    echo -n " * running $1 "
+    if [[ -z "${DRY_RUN}" ]]; then
+        $1 || die "ERROR"
+    fi
     echo "OK"
 }
 
 function mailman_stop() {
-    echo -n "stops mailman"
-    /etc/init.d/mailman stop &>/dev/null
+    echo -n " * stops mailman"
+    if [[ -z "${DRY_RUN}" ]]; then
+        /etc/init.d/mailman stop &>/dev/null
+    fi
     echo .
 }
 
 function mailman_templates() {
-    echo -n "copies new mails templates"
-    mkdir -p /etc/mailman/xorg
-    cp -f ../../modules/lists/mail_templates/*.txt /etc/mailman/xorg
+    echo -n " * copies new mails templates"
+    if [[ -z "${DRY_RUN}" ]]; then
+        mkdir -p /etc/mailman/xorg
+        cp -f ../../modules/lists/mail_templates/*.txt /etc/mailman/xorg
+    fi
     echo .
 }
 
 function mailman_start() {
-    echo -n "starts mailman"
-    /etc/init.d/mailman start &>/dev/null
+    echo -n " * starts mailman"
+    if [[ -z "${DRY_RUN}" ]]; then
+        /etc/init.d/mailman start &>/dev/null
+    fi
     echo .
 }