aboutsummaryrefslogtreecommitdiff
path: root/ninjahelper
diff options
context:
space:
mode:
Diffstat (limited to 'ninjahelper')
-rwxr-xr-xninjahelper261
1 files changed, 0 insertions, 261 deletions
diff --git a/ninjahelper b/ninjahelper
deleted file mode 100755
index 13a4ca9..0000000
--- a/ninjahelper
+++ /dev/null
@@ -1,261 +0,0 @@
-#!/bin/bash
-
-####################################################
-## Functions
-
-function check_perms() {
- local file=$1
- local perms=`ls -ld $file`
- group_w_perm=${perms:5:1}
- world_w_perm=${perms:8:1}
- if [ "$group_w_perm" == "w" -o "$world_w_perm" == "w" ]; then
- echo $perms
- echo "helper scripts must not be group or world writable! Dying on file $file"
- exit
- fi
- if [ `ls -ld $file | awk '{print $3}'` != "root" ]; then
- echo "helper scripts must be owned by root! Dying on file $file"
- exit
- fi
-}
-
-
-##
-## returns the next available file name given a file
-## in the form /etc/backup.d/10.sys
-## sets variable $returned_filename
-##
-get_next_filename() {
- next_filename=$1
- dir=`dirname $next_filename`
- file=`basename $next_filename`
- number=${file:0:2}
- suffix=${file:3}
- while [ -f $next_filename ]; do
- let "number += 1"
- next_filename="$dir/$number.$suffix"
- done
-}
-
-##
-## installs packages (passed in as $@) if not present
-##
-require_packages() {
- for pkg in "$@"; do
- installed=`dpkg -s $pkg | grep 'ok installed'`
- if [ -z "$installed" ]; then
- booleanBox "install $pkg?" "This backup action requires package $pkg. Do you want to install it now?"
- if [ $? = 0 ]; then
- apt-get install $pkg
- echo "hit return to continue...."
- read
- fi
- fi
- done
-}
-
-##
-## menu for the wizards
-##
-donew() {
- listBegin "new action menu" "select an action to create"
- listItem return "return to main menu"
- for data in $HELPERS; do
- data=${data//_/ }
- helper_function=${data%%:*}
- helper_info=${data##*:}
- listItem $helper_function "$helper_info"
- done
- listDisplay menu
-
- [ $? = 1 ] && return
- result="$REPLY"
- [ "$result" = "return" ] && return
- result=${result}_wizard
- $result
-}
-
-do_rm_action() {
- booleanBox "remove action" "Are you sure you want to remove action file $1?"
- if [ $? = 0 ]; then
- rm $1;
- fi
-}
-
-do_run() {
- backupninja --run $1
- echo "Hit return to continue..."
- read
-}
-
-do_xedit() {
- if [ -z "$EDITOR" -o ! -x "`which $EDITOR`" ]; then
- if [ -h /etc/alternatives/editor -a -x "`readlink /etc/alternatives/editor`" ]; then
- EDITOR="`readlink /etc/alternatives/editor`"
- elif [ -x "`which nano`" ]; then
- EDITOR="`which nano`"
- elif [ -x "`which vim`" ]; then
- EDITOR="`which vim`"
- elif [ -x "`which vi`" ]; then
- EDITOR="`which vi`"
- else
- echo "No suitable editor found."
- echo "Please define $EDITOR or configure /etc/alternatives/editor."
- exit
- fi
- fi
- $EDITOR $1
-}
-
-do_run_test() {
- backupninja --test --run $1
- echo "Hit return to continue..."
- read
-}
-
-do_disable() {
- mv $1 $1.disabled
-}
-
-do_enable() {
- mv $1 ${1%.*}
-}
-
-do_rename() {
- dir=`dirname $1`
- filename=`basename $1`
- inputBox "rename action" "enter a new filename" $filename
- mv $dir/$filename $dir/$REPLY
-}
-
-doaction() {
- action=$1
- base=`basename $action`
- if [ "${base##*.}" == "disabled" ]; then
- enable="enable";
- else
- enable="disable";
- fi
- while true; do
- menuBox "action menu" "$action $first" \
- main "return to main menu" \
- view "view configuration" \
- xedit "launch external editor" \
- $enable "$enable action" \
- name "change the filename" \
- run "run this action now" \
- test "test connections and passwords only" \
- kill "remove this action"
- [ $? = 1 ] && return;
- result="$REPLY"
- case "$result" in
- "view") dialog --textbox $action 0 0;;
- "xedit") do_xedit $action;;
- "disable") do_disable $action; return;;
- "enable") do_enable $action; return;;
- "name") do_rename $action; return;;
- "run") do_run $action;;
- "test") do_run_test $action;;
- "kill") do_rm_action $action; return;;
- "main") return;;
- esac
- done
-}
-
-#####################################################
-## begin program
-
-if [ ! -x "`which dialog`" ]; then
- echo "ninjahelper is a menu based wizard for backupninja."
- echo "It requires 'dialog' in order to run. Do you want to install dialog now?"
- while true; do
- echo -n "(yes/no): "
- read install
- if [ "$install" == "yes" ]; then
- apt-get install dialog
- break
- elif [ "$install" == "no" ]; then
- exit
- else
- echo "You must answer 'yes' or 'no'"
- fi
- done
-fi
-
-conffile="/etc/backupninja.conf"
-if [ ! -r "$conffile" ]; then
- echo "Configuration file $conffile not found."
- exit 1
-fi
-scriptdir=`grep scriptdirectory $conffile | awk '{print $3}'`
-if [ ! -n "$scriptdir" ]; then
- echo "Cound not find entry 'scriptdirectory' in $conffile"
- exit 1
-fi
-if [ ! -d "$scriptdir" ]; then
- echo "Script directory $scriptdir not found."
- exit 1
-fi
-configdirectory=`grep configdirectory $conffile | awk '{print $3}'`
-if [ ! -n "$configdirectory" ]; then
- echo "Cound not find entry 'configdirectory' in $conffile"
- exit 1
-fi
-if [ ! -d "$configdirectory" ]; then
- echo "Configuration directory $configdirectory not found."
- exit 1
-fi
-
-. $scriptdir/easydialog.sh
-
-if [ "$UID" != "0" ]; then
- msgBox "warning" "ninjahelper must be run by root!"
- exit 1
-fi
-
-# load all the helpers
-HELPERS=""
-for file in `find $scriptdir -follow -name '*.helper'`; do
- check_perms $file
- . $file
-done
-
-setApplicationTitle "ninjahelper"
-setDimension 75 19
-
-#####################################################
-## main event loop
-
-while true; do
-
-menulist=
-action=
-let "i = 1"
-for file in `find $conf/etc/backup.d/ -type f | sort -n`; do
- menulist="$menulist $i $file"
- actions[$i]=$file
- let "i += 1"
-done
-
-menuBox "main menu" "Select a backup action for more options, or create a new action:" $menulist \
- new "create a new backup action" \
- quit "leave ninjahelper"
-
-[ $? = 1 -o $? = 255 ] && exit 0;
-
-choice="$REPLY"
-if [ "$choice" == "new" ]; then
- donew;
-elif [ "$choice" == "quit" ]; then
- exit 0;
-else
- action=${actions[$choice]};
- if [ -f "$action" ]; then
- doaction $action
- else
- msgBox "error" "error: cannot find the file '$action'"
- fi
-fi
-
-
-done