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
}
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')
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
# 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
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
# (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
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
"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
declare -a dup_includes
declare -a dup_excludes
declare -a dup_vsincludes
- dup_vsnames=
dup_incremental=yes
dup_keep=60
dup_bandwidth=
# 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