X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Fdup.helper;h=13371f4668ba5a82dc5387702c687b22b47a0840;hb=608d395aa21fcb5b86d28bd3414a18badcfaf3bc;hp=89f458da03157c6a265c3bd44d50c471a88e6ce1;hpb=9208b449da1a1df50c2759946c9931f456af1e87;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/handlers/dup.helper b/handlers/dup.helper index 89f458d..13371f4 100644 --- a/handlers/dup.helper +++ b/handlers/dup.helper @@ -8,39 +8,40 @@ 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]} + [ -z "$dup_includes" ] && dup_includes="$dup_default_includes" + for i in $dup_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]} + [ -z "$dup_vsincludes" ] && dup_vsincludes="$dup_default_includes" + for i in $dup_vsincludes; 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 +49,21 @@ 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]} + [ -z "$dup_excludes" ] && dup_excludes="$dup_default_excludes" + for i in $dup_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 "$dup_title" + choose_host_or_vservers_or_both "$dup_title" [ $? = 0 ] || return 1 case $host_or_vservers in 'host') @@ -159,9 +161,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 +261,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 +285,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 +302,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 +359,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 +374,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 @@ -396,12 +405,9 @@ dup_wizard() { _con_done= _gpg_done= _adv_done= - declare -a dup_default_includes - declare -a dup_default_excludes - declare -a dup_includes - declare -a dup_excludes - declare -a dup_vsincludes - dup_vsnames= + dup_includes= + dup_excludes= + dup_vsincludes= dup_incremental=yes dup_keep=60 dup_bandwidth= @@ -418,8 +424,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