aboutsummaryrefslogtreecommitdiff
path: root/handlers
diff options
context:
space:
mode:
authorElijah Saxon <elijah@riseup.net>2005-07-08 19:21:46 +0000
committerElijah Saxon <elijah@riseup.net>2005-07-08 19:21:46 +0000
commit67b5cf70d7a48bf9333e448b0d1ca53aacc252ea (patch)
treeeacabdac106ffe6963df16a714935162b69ea2d2 /handlers
parent1d3e3482bef095acc4e3d2ebd058037b7710001b (diff)
downloadbackupninja-67b5cf70d7a48bf9333e448b0d1ca53aacc252ea.tar.gz
backupninja-67b5cf70d7a48bf9333e448b0d1ca53aacc252ea.tar.bz2
made it so that helpers are dynamically defined.
Diffstat (limited to 'handlers')
-rw-r--r--handlers/easydialog.sh73
-rw-r--r--handlers/ldap.helper1
-rw-r--r--handlers/mysql.helper1
-rw-r--r--handlers/rdiff.helper15
-rw-r--r--handlers/sys.helper1
5 files changed, 76 insertions, 15 deletions
diff --git a/handlers/easydialog.sh b/handlers/easydialog.sh
index b96a5c1..5d70653 100644
--- a/handlers/easydialog.sh
+++ b/handlers/easydialog.sh
@@ -1,6 +1,7 @@
#!/bin/bash
# copyright 2002 lmoore@tump.com under the terms of the GNU LGPL.
+# additions 2005 collective@riseup.net
# whiptail has trouble being called in the foo=$(whiptail ...) fashion for
# some reason. this is very annoying. this means that we need to use
@@ -22,7 +23,7 @@ setApplicationTitle() {
}
setHelp() {
- HELP="$@"
+ HELP="$@"
}
setDimension() {
@@ -99,6 +100,8 @@ menuBox() {
_genericListBox --menu "$@"
}
+## a menu box with additional help info displayed
+## at the bottom of the window when an item is selected
menuBoxHelp() {
HELP="--item-help"
_genericListBox --menu "$@"
@@ -107,6 +110,7 @@ menuBoxHelp() {
return $status
}
+## a menu box with an addition button 'help'
menuBoxHelpFile() {
HELP="--help-button"
_genericListBox --menu "$@"
@@ -115,7 +119,6 @@ menuBoxHelpFile() {
return $status
}
-
checkBox() {
_genericListBox --checklist "$@"
}
@@ -140,8 +143,64 @@ passwordBox() {
return $status
}
+
+#########################################################
+## begin-item-display style lists
+##
+## these lists are built by calling fuctions multiple times.
+## this can make it easier to build your list in a loop
+##
+
+listBegin() {
+ _menu_title=$1
+ _menu_msg=$2
+ _menu_items=0
+ _menu_text=
+ _menu_labels=
+}
+
+listItem() {
+ _menu_labels[$_menu_items]=$1
+ _menu_text[$_menu_items]=$2
+ let "_menu_items += 1"
+}
+
+
+##
+## takes one of:
+## menu, checklist, radiolist
+##
+listDisplay() {
+ boxtype=$1
+ local temp=$(mktemp -t) || exit 1
+ trap "rm -f $temp" 0
+
+ (
+ echo -ne " $HELP $_DEFAULT "
+ echo -ne " --backtitle '$BACKTITLE' "
+ echo -ne " --title '$_menu_title' "
+ echo -ne " --$boxtype '$_menu_msg' "
+ echo -ne " $HEIGHT $WIDTH 10 "
+ for ((i=0; i < $_menu_items ; i++)); do
+ label=${_menu_labels[$i]}
+ text=${_menu_text[$i]}
+ echo -ne " $label '$text' "
+ done
+ ) | xargs $DIALOG 2> $temp
+
+ local status=$?
+ REPLY=""
+ [ $status = 0 ] && REPLY=`cat $temp`
+ rm -f $temp
+ _DEFAULT=
+ return $status
+}
+
+####################################################
+## FORM
+
_form_gap=2
-startForm() {
+formBegin() {
_form_title=$1
_form_items=0
_form_labels=
@@ -154,7 +213,7 @@ formItem() {
let "_form_items += 1"
}
-displayForm() {
+formDisplay() {
local temp=$(mktemp -t) || exit 1
max_length=0
@@ -167,17 +226,13 @@ displayForm() {
done
let "max_length += 2"
- local form=
local xpos=1
(
echo -n -e "--form '$_form_title' 0 0 20"
for ((i=0; i < $_form_items ; i++)); do
label=${_form_labels[$i]}
text=${_form_text[$i]}
-# if [ "$text" == "" ]; then
-# text='_empty_'
-# fi
- echo -n -e "$form $label $xpos 1 '$text' $xpos $max_length 30 30"
+ echo -n -e " $label $xpos 1 '$text' $xpos $max_length 30 30"
let "xpos += _form_gap"
done
) | xargs $DIALOG 2> $temp
diff --git a/handlers/ldap.helper b/handlers/ldap.helper
index 44b08cb..7670817 100644
--- a/handlers/ldap.helper
+++ b/handlers/ldap.helper
@@ -1,3 +1,4 @@
+HELPERS="$HELPERS ldap:ldap_database_backup"
ldap_create_file() {
while true; do
diff --git a/handlers/mysql.helper b/handlers/mysql.helper
index 765f228..759ee26 100644
--- a/handlers/mysql.helper
+++ b/handlers/mysql.helper
@@ -1,3 +1,4 @@
+HELPERS="$HELPERS mysql:mysql_database_backup"
do_mysql_user() {
inputBox "mysql action wizard" "specify a system user:"
diff --git a/handlers/rdiff.helper b/handlers/rdiff.helper
index 2efbe11..2ad2a49 100644
--- a/handlers/rdiff.helper
+++ b/handlers/rdiff.helper
@@ -1,10 +1,13 @@
+
+HELPERS="$HELPERS rdiff:incremental_remote_filesystem_backup"
+
do_rdiff_dest() {
- startForm "rdiff action wizard"
+ formBegin "rdiff action wizard"
formItem "keep" "$rdiff_keep"
formItem "dest_directory" "$rdiff_directory"
formItem "dest_host" "$rdiff_host"
formItem "dest_user" "$rdiff_user"
- displayForm
+ formDisplay
[ $? = 1 ] && return;
set -- $REPLY
@@ -18,7 +21,7 @@ do_rdiff_dest() {
}
do_rdiff_src() {
- startForm "rdiff action wizard: includes"
+ formBegin "rdiff action wizard: includes"
formItem include /var/spool/cron/crontabs
formItem include /var/backups
formItem include /etc
@@ -29,7 +32,7 @@ do_rdiff_src() {
formItem include
formItem include
formItem include
- displayForm
+ formDisplay
[ $? = 1 ] && return;
rdiff_includes=
@@ -39,11 +42,11 @@ do_rdiff_src() {
done
set +o noglob
- startForm "rdiff action wizard: excludes"
+ formBegin "rdiff action wizard: excludes"
formItem exclude '/home/*/.gnupg'
formItem exclude
formItem exclude
- displayForm
+ formDisplay
[ $? = 1 ] && return;
rdiff_excludes=
diff --git a/handlers/sys.helper b/handlers/sys.helper
index 22eb01d..c97f53f 100644
--- a/handlers/sys.helper
+++ b/handlers/sys.helper
@@ -1,3 +1,4 @@
+HELPERS="$HELPERS sys:general_hardware_and_system_info"
sys_wizard() {
require_packages hwinfo