diff options
| author | Elijah Saxon <elijah@riseup.net> | 2005-07-08 19:21:46 +0000 | 
|---|---|---|
| committer | Elijah Saxon <elijah@riseup.net> | 2005-07-08 19:21:46 +0000 | 
| commit | 67b5cf70d7a48bf9333e448b0d1ca53aacc252ea (patch) | |
| tree | eacabdac106ffe6963df16a714935162b69ea2d2 /ninjahelper | |
| parent | 1d3e3482bef095acc4e3d2ebd058037b7710001b (diff) | |
| download | backupninja-67b5cf70d7a48bf9333e448b0d1ca53aacc252ea.tar.gz backupninja-67b5cf70d7a48bf9333e448b0d1ca53aacc252ea.tar.bz2 | |
made it so that helpers are dynamically defined.
Diffstat (limited to 'ninjahelper')
| -rwxr-xr-x | ninjahelper | 67 | 
1 files changed, 37 insertions, 30 deletions
| diff --git a/ninjahelper b/ninjahelper index 9568b53..f487183 100755 --- a/ninjahelper +++ b/ninjahelper @@ -3,6 +3,22 @@  ####################################################  ## Functions +function check_perms() { +	local file=$1 +	local perms=`ls -ld $file` +	perms=${perms:4:6} +	if [[ "$perms" != "------" && "$perms" != "r--r--" ]]; 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 @@ -37,37 +53,25 @@ require_packages() {      done  } -doradiobox() { -	defaultchoice="red is.pretty on" -	choices="green is_nice_too off blue i_love_blue off yellow is.bright off orange make.me.hungry off" -	radioBox "radio title" "choose one color" $defaultchoice $choices -	case $? in -	   0) ;; -	   1) echo "color choice cancelled..."; sleep 1;; -	   255) echo "something went wrong, exiting..." -	      exit 1 ;; -	esac -	result="$REPLY" -	msgBox "message title" "you said $result." -} - +## +## menu for the wizards +##  donew() { -    menuBox "new action menu" "select an action to create"  \ -      return "return to main menu" \ -      sys "general hardware and system info" \ -      mysql "mysql database backup" \ -      ldap "ldap database backup" \ -      rdiff "incremental filesystem backup" -   -    [ $? = 1 ] && return; -    result="$REPLY" -  	case "$result" in -	   "sys") sys_wizard;;  -	   "mysql") mysql_wizard;; -	   "ldap") ldap_wizard;; -   	   "rdiff") rdiff_wizard;; -	   "return") return;; -	esac +  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() { @@ -172,7 +176,10 @@ if [ "$UID" != "0" ]; then  	exit 1  fi +# load all the helpers +HELPERS=""  for file in `find $scriptdir -follow -name '*.helper'`; do +   check_perms $file     . $file  done | 
