r3568@krups: intrigeri | 2005-11-17 22:25:05 +0100
[matthijs/upstream/backupninja.git] / handlers / dup.helper
index 7c172f066f1bc45e0ca039512a622a55f5c72f8b..7c71ecc42ed817cd91ba34637a0f8d0ea0552119 100644 (file)
@@ -8,39 +8,38 @@ do_dup_host_includes() {
    REPLY=
    while [ -z "$REPLY" ]; do
       formBegin "$dup_title - host system: includes"
-         for ((i=0; i < ${#dup_default_includes[@]} ; i++)); do
-            formItem include ${dup_default_includes[$i]}
+         for i in $dup_default_includes; do
+            formItem include "$i"
         done
         formItem include ""
         formItem include ""
         formItem include ""
         formDisplay
       [ $? = 0 ] || return 1
-      dup_includes=($REPLY)
+      dup_includes="$REPLY"
    done
    set +o noglob
 }
 
 do_dup_vserver() {
-   # choose the vservers to backup
-   vservers_chooser "$dup_title"
+   # choose the vservers to backup (into $selected_vservers)
+   choose_one_or_more_vservers "$dup_title"
    [ $? = 0 ] || return 1
-   dup_vsnames="$vservers_chooser_vsnames"
 
    set -o noglob
    # choose the files to backup
    REPLY=
    while [ -z "$REPLY" ]; do
       formBegin "$dup_title - vservers: includes"
-         for ((i=0; i < ${#dup_default_includes[@]} ; i++)); do
-            formItem include ${dup_default_includes[$i]}
+         for i in $dup_default_includes; do
+            formItem include "$i"
         done
         formItem include ""
         formItem include ""
         formItem include ""
       formDisplay
       [ $? = 0 ] || return 1
-      dup_vsincludes=($REPLY)
+      dup_vsincludes="$REPLY"
    done
    set +o noglob
 }
@@ -48,20 +47,20 @@ do_dup_vserver() {
 do_dup_excludes() {
    set -o noglob
    formBegin "$dup_title: excludes"
-     for ((i=0; i < ${#dup_default_excludes[@]} ; i++)); do
-        formItem exclude ${dup_default_excludes[$i]}
+     for i in $dup_default_excludes; do
+        formItem exclude "$i"
      done
      formItem exclude ""
      formItem exclude ""
      formItem exclude ""
    formDisplay
    [ $? = 0 ] || return 1
-   dup_excludes=($REPLY)
+   dup_excludes="$REPLY"
    set +o noglob
 }
 
 do_dup_src() {
-   host_or_vservers_chooser
+   choose_host_or_vservers_or_both "$dup_title"
    [ $? = 0 ] || return 1
    case $host_or_vservers in
       'host')
@@ -159,9 +158,12 @@ do_dup_gpg() {
 
    set +o noglob
    _gpg_done="(DONE)"
-   setDefault conn
+   setDefault adv
+   # TODO: replace the above line by the following when do_dup_conn is written
+   # setDefault conn
 }
 
+# TODO: share rdiff.helper code in some lib, and use it here
 do_dup_conn() {
    _con_done="(DONE)"
    setDefault adv
@@ -256,10 +258,10 @@ encryptkey = $dup_gpg_encryptkey
 #   include = /mnt/crypt/home/user/Mail
 EOF
 
-   if [ "$host_or_vservers" == 'host' -o "$host_or_vservers" == 'both' ]; then
+   if [ "$host_or_vservers" == host -o "$host_or_vservers" == both ]; then
       set -o noglob
-      for ((i=0; i < ${#dup_includes[@]} ; i++)); do
-        echo "include = ${dup_includes[$i]}" >> $next_filename
+      for i in $dup_includes; do
+        echo "include = $i" >> $next_filename
       done
       set +o noglob
    fi
@@ -280,11 +282,11 @@ EOF
 
 EOF
 
-   if [ "$host_or_vservers" == 'vservers' -o "$host_or_vservers" == 'both' ]; then
+   if [ "$host_or_vservers" == vservers -o "$host_or_vservers" == both ]; then
       set -o noglob
-      echo "vsnames = \"$dup_vsnames\"\n" >> $next_filename
-      for ((i=0; i < ${#dup_vsincludes[@]} ; i++)); do
-         echo "vsinclude = ${dup_vsincludes[$i]}" >> $next_filename
+      echo -e "vsnames = \"$selected_vservers\"\n" >> $next_filename
+      for i in $dup_vsincludes; do
+         echo "vsinclude = $i" >> $next_filename
       done
       set +o noglob
    fi
@@ -297,8 +299,8 @@ EOF
 # (supports globbing with '*')
 EOF
     set -o noglob
-    for ((i=0; i < ${#dup_excludes[@]} ; i++)); do
-        echo exclude = ${dup_excludes[$i]} >> $next_filename
+    for i in $dup_excludes; do
+        echo "exclude = $i" >> $next_filename
     done
     set +o noglob
 
@@ -354,11 +356,12 @@ dup_main_menu() {
      gpgitem="configure GnuPG encryption/signing $_gpg_done"
      conitem="set up ssh keys and test remote connection $_con_done"
      advitem="edit advanced settings $_adv_done"
+     # TODO: add the following to the menu when do_dup_conn is written
+     # conn "$conitem" \
      menuBox "$dup_title" "choose a step:" \
         src "$srcitem" \
         dest "$destitem" \
         gpg "$gpgitem" \
-        conn "$conitem" \
        adv "$advitem" \
         finish "finish and create config file"
      [ $? = 0 ] || return 1
@@ -368,10 +371,13 @@ dup_main_menu() {
        "src") do_dup_src;;
        "dest") do_dup_dest;;
        "gpg") do_dup_gpg;;
-       "conn") do_dup_conn;;
+       # TODO: enable the following when do_dup_conn is written
+       # "conn") do_dup_conn;;
        "adv") do_dup_adv;;
        "finish")
-           if [[ "$_con_done$_dest_done$_gpg_done$_src_done" != "(DONE)(DONE)(DONE)(DONE)" ]]; then
+           if [[ "$_dest_done$_gpg_done$_src_done" != "(DONE)(DONE)(DONE)" ]]; then
+          # TODO: replace the previous test by the following when do_dup_conn is written
+           # if [[ "$_con_done$_dest_done$_gpg_done$_src_done" != "(DONE)(DONE)(DONE)(DONE)" ]]; then
               msgBox "$dup_title" "You cannot create the configuration file until the four first steps are completed."
            else
               do_dup_finish
@@ -401,7 +407,6 @@ dup_wizard() {
    declare -a dup_includes
    declare -a dup_excludes
    declare -a dup_vsincludes
-   dup_vsnames=
    dup_incremental=yes
    dup_keep=60
    dup_bandwidth=
@@ -418,8 +423,8 @@ dup_wizard() {
 
    # Global variables whose '*' shall not be expanded
    set -o noglob
-   dup_default_includes=(/var/spool/cron/crontabs /var/backups /etc /root /home /usr/local/*bin /var/lib/dpkg/status*)
-   dup_default_excludes=(/home/*/.gnupg)
+   dup_default_includes="/var/spool/cron/crontabs /var/backups /etc /root /home /usr/local/*bin /var/lib/dpkg/status*"
+   dup_default_excludes="/home/*/.gnupg"
    set +o noglob
 
    dup_main_menu