diff --git a/backupninja b/backupninja
deleted file mode 100755
index d653144a66520082f9ffd0472d59533a59c4f025..0000000000000000000000000000000000000000
--- a/backupninja
+++ /dev/null
@@ -1,549 +0,0 @@
-#!/bin/bash
-#                          |\_
-# B A C K U P N I N J A   /()/
-#                         `\|
-#
-# Copyright (C) 2004-05 riseup.net -- property is theft.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-
-#####################################################
-## FUNCTIONS
-
-function setupcolors() {
-	BLUE="\033[34;01m"
-	GREEN="\033[32;01m"
-	YELLOW="\033[33;01m"
-	PURPLE="\033[35;01m"
-	RED="\033[31;01m"
-	OFF="\033[0m"
-	CYAN="\033[36;01m"
-	COLORS=($BLUE $GREEN $YELLOW $RED $PURPLE)
-}
-
-function colorize() {
-	if [ "$usecolors" == "yes" ]; then
-		local typestr=`echo "$@" | sed 's/\(^[^:]*\).*$/\1/'`
-		[ "$typestr" == "Debug" ] && type=0
-		[ "$typestr" == "Info" ] && type=1
-		[ "$typestr" == "Warning" ] && type=2
-		[ "$typestr" == "Error" ] && type=3
-		[ "$typestr" == "Fatal" ] && type=4
-		color=${COLORS[$type]}
-		endcolor=$OFF
-		echo -e "$color$@$endcolor"
-	else
-		echo -e "$@"
-	fi
-}
-
-# We have the following message levels:
-# 0 - debug - blue
-# 1 - normal messages - green
-# 2 - warnings - yellow
-# 3 - errors - orange
-# 4 - fatal - red
-# First variable passed is the error level, all others are printed
-
-# if 1, echo out all warnings, errors, or fatal
-# used to capture output from handlers
-echo_debug_msg=0
-
-usecolors=yes
-
-function printmsg() {
-	[ ${#@} -gt 1 ] || return
-
-	type=$1
-	shift
-	if [ $type == 100 ]; then
-		typestr=`echo "$@" | sed 's/\(^[^:]*\).*$/\1/'`
-		[ "$typestr" == "Debug" ] && type=0
-		[ "$typestr" == "Info" ] && type=1
-		[ "$typestr" == "Warning" ] && type=2
-		[ "$typestr" == "Error" ] && type=3
-		[ "$typestr" == "Fatal" ] && type=4
-		typestr=""
-	else
-		types=(Debug Info Warning Error Fatal)
-		typestr="${types[$type]}: "
-	fi
-	
-	print=$[4-type]
-	
-	if [ $echo_debug_msg == 1 ]; then
-		echo -e "$typestr$@" >&2
-	elif [ $debug ]; then
-		colorize "$typestr$@" >&2
-	fi
-	
-	if [ $print -lt $loglevel ]; then
-		logmsg "$typestr$@"
-	fi
-}
-
-function logmsg() {
-	if [ -w "$logfile" ]; then
-		echo -e `date "+%h %d %H:%M:%S"` "$@" >> $logfile
-	fi
-}
-
-function passthru() {
-	printmsg 100 "$@"
-}
-function debug() {
-	printmsg 0 "$@"
-}
-function info() {
-	printmsg 1 "$@"
-}
-function warning() {
-	printmsg 2 "$@"
-}
-function error() {
-	printmsg 3 "$@" 
-}
-function fatal() {
-	printmsg 4 "$@"
-	exit 2
-}
-
-msgcount=0
-function msg {
-	messages[$msgcount]=$1
-	let "msgcount += 1"
-}
-
-function setfile() {
-	CURRENT_CONF_FILE=$1
-}
-
-function setsection() {
-	CURRENT_SECTION=$1
-}
-
-
-#
-# create a temporary file in a secure way.
-#
-function maketemp() {
-	if [ -x /bin/mktemp ]
-	then
-		local tempfile=`mktemp /tmp/$1.XXXXXXXX`
-	else
-		DATE=`date`
-		sectmp=`echo $DATE | /usr/bin/md5sum | cut -d- -f1`
-		local tempfile=/tmp/$1.$sectmp
-	fi
-	echo $tempfile
-}
-
-
-#
-# sets a global var with name equal to $1
-# to the value of the configuration parameter $1
-# $2 is the default.
-# 
-
-function getconf() {
-	CURRENT_PARAM=$1
-	ret=`awk -f $scriptdir/parseini S=$CURRENT_SECTION P=$CURRENT_PARAM $CURRENT_CONF_FILE`
-	# if nothing is returned, set the default
-	if [ "$ret" == "" -a "$2" != "" ]; then
-		ret="$2"
-	fi
-
-	# replace * with %, so that it is not globbed.
-	ret="${ret//\\*/__star__}"
-
-	# this is weird, but single quotes are needed to 
-	# allow for returned values with spaces. $ret is still expanded
-	# because it is in an 'eval' statement.
-	eval $1='$ret'
-}
-
-#
-# enforces very strict permissions on configuration file $file.
-#
-
-function check_perms() {
-	local file=$1
-	local perms=`ls -ld $file`
-	perms=${perms:4:6}
-	if [ "$perms" != "------" ]; then
-		echo "Configuration files must not be group or world writable/readable! Dying on file $file"
-		fatal "Configuration files must not be group or world writable/readable! Dying on file $file"
-	fi
-	if [ `ls -ld $file | awk '{print $3}'` != "root" ]; then
-		echo "Configuration files must be owned by root! Dying on file $file"
-		fatal "Configuration files must be owned by root! Dying on file $file"
-	fi
-}
-
-# simple lowercase function
-function tolower() {
-	echo "$1" | tr [:upper:] [:lower:]
-}
-
-# simple to integer function
-function toint() {
-	echo "$1" | tr [:alpha:] -d 
-}
-
-#
-# function isnow(): returns 1 if the time/day passed as $1 matches
-# the current time/day.
-#
-# format is <day> at <time>:
-#   sunday at 16
-#   8th at 01
-#   everyday at 22
-#
-
-# we grab the current time once, since processing
-# all the configs might take more than an hour.
-nowtime=`date +%H`
-nowday=`date +%d`
-nowdayofweek=`date +%A`
-nowdayofweek=`tolower "$nowdayofweek"`
-
-function isnow() {
-	local when="$1"
-	set -- $when
-	whendayofweek=$1; at=$2; whentime=$3;
-	whenday=`toint "$whendayofweek"`
-	whendayofweek=`tolower "$whendayofweek"`
-	whentime=`echo "$whentime" | sed 's/:[0-9][0-9]$//' | sed -r 's/^([0-9])$/0\1/'`
-
-	if [ "$whendayofweek" == "everyday" -o "$whendayofweek" == "daily" ]; then
-		whendayofweek=$nowdayofweek
-	fi
-
-	if [ "$whenday" == "" ]; then
-		if [ "$whendayofweek" != "$nowdayofweek" ]; then
-			whendayofweek=${whendayofweek%s}
-			if [ "$whendayofweek" != "$nowdayofweek" ]; then
-				return 0
-			fi
-		fi
-	elif [ "$whenday" != "$nowday" ]; then
-		return 0
-	fi
-
-	[ "$at" == "at" ] || return 0
-	[ "$whentime" == "$nowtime" ] || return 0
-
-	return 1
-}
-
-function usage() {
-	cat << EOF
-$0 usage:
-This script allows you to coordinate system backup by dropping a few
-simple configuration files into /etc/backup.d/. Typically, this
-script is run hourly from cron.
-
-The following options are available:
--h, --help           This usage message
--d, --debug          Run in debug mode, where all log messages are
-                     output to the current shell.
--f, --conffile FILE  Use FILE for the main configuration instead
-                     of /etc/backupninja.conf
--t, --test           Test run mode. This will test if the backup
-                     could run, without actually preforming any
-                     backups. For example, it will attempt to authenticate
-                     or test that ssh keys are set correctly.
--n, --now            Perform actions now, instead of when they might
-                     be scheduled. No output will be created unless also
-                     run with -d.
-    --run FILE       Execute the specified action file and then exit.    
-                     Also puts backupninja in debug mode.
-                     
-When in debug mode, output to the console will be colored:
-EOF
-	debug=1
-	debug   "Debugging info (when run with -d)"
-	info    "Informational messages (verbosity level 4)"
-	warning "Warnings (verbosity level 3 and up)"
-	error   "Errors (verbosity level 2 and up)"
-	fatal   "Fatal, halting errors (always shown)"
-}
-
-##
-## this function handles the running of a backup action
-##
-## these globals are modified:
-## fatals, errors, warnings, actions_run, errormsg
-##
-
-function process_action() {
-	local file="$1"
-	local suffix="$2"
-	local run="no"
-	setfile $file
-
-	# skip over this config if "when" option
-	# is not set to the current time.
-	getconf when "$defaultwhen"
-	if [ "$processnow" == 1 ]; then
-		info ">>>> starting action $file (because of --now)"
-		run="yes"
-	elif [ "$when" == "hourly" ]; then
-		info ">>>> starting action $file (because 'when = hourly')"
-		run="yes"
-	else
-		IFS=$'\t\n'
-		for w in $when; do
-			IFS=$' \t\n'
-			isnow "$w"
-			ret=$?
-			IFS=$'\t\n'
-			if [ $ret == 0 ]; then
-				debug "skipping $file because it is not $w"
-			else
-				info ">>>> starting action $file (because it is $w)"
-				run="yes"
-			fi
-		done
-		IFS=$' \t\n'
-	fi
-	debug $run
-	[ "$run" == "no" ] && return
-	
-	let "actions_run += 1"
-
-	# call the handler:
-	local bufferfile=`maketemp backupninja.buffer`
-	echo "" > $bufferfile
-	echo_debug_msg=1
-	(
-		. $scriptdir/$suffix $file
-	) 2>&1 | (
-		while read a; do
-			echo $a >> $bufferfile
-			[ $debug ] && colorize "$a"
-		done
-	)
-	retcode=$?
-	# ^^^^^^^^ we have a problem! we can't grab the return code "$?". grrr.
-	echo_debug_msg=0
-
-	_warnings=`cat $bufferfile | grep "^Warning: " | wc -l`
-	_errors=`cat $bufferfile | grep "^Error: " | wc -l`
-	_fatals=`cat $bufferfile | grep "^Fatal: " | wc -l`
-	
-	ret=`grep "\(^Warning: \|^Error: \|^Fatal: \)" $bufferfile`
-	rm $bufferfile
-	if [ $_fatals != 0 ]; then
-		msg "*failed* -- $file"
-		errormsg="$errormsg\n== fatal errors from $file ==\n\n$ret\n"
-		passthru "Fatal: <<<< finished action $file: FAILED"
-	elif [ $_errors != 0 ]; then
-		msg "*error* -- $file"
-		errormsg="$errormsg\n== errors from $file ==\n\n$ret\n"
-		error "<<<< finished action $file: ERROR"
-	elif [ $_warnings != 0 ]; then
-		msg "*warning* -- $file"
-		errormsg="$errormsg\n== warnings from $file ==\n\n$ret\n"
-		warning "<<<< finished action $file: WARNING"
-	else
-		msg "success -- $file"
-		info "<<<< finished action $file: SUCCESS"
-	fi
-
-	let "fatals += _fatals"
-	let "errors += _errors"
-	let "warnings += _warnings"	
-}
-
-#####################################################
-## MAIN
-
-setupcolors
-conffile="/etc/backupninja.conf"
-loglevel=3
-
-## process command line options
-
-while [ $# -ge 1 ]; do
-	case $1 in
-		-h|--help) usage;;
-		-d|--debug) debug=1;;
-		-t|--test) test=1;debug=1;;
-		-n|--now) processnow=1;;
-		-f|--conffile)
-			if [ -f $2 ]; then
-				conffile=$2
-			else
-				echo "-f|--conffile option must be followed by an existing filename"
-				fatal "-f|--conffile option must be followed by an existing filename"
-				usage
-			fi
-			# we shift here to avoid processing the file path 
-			shift
-			;;
-		--run)
-			debug=1
-			if [ -f $2 ]; then
-				singlerun=$2
-				processnow=1
-			else
-				echo "--run option must be fallowed by a backupninja action file"
-				fatal "--run option must be fallowed by a backupninja action file"
-				usage
-			fi
-			shift
-			;;
-		*)
-			debug=1
-			echo "Unknown option $1"
-			fatal "Unknown option $1"
-			usage
-			exit
-			;;
-	esac
-	shift
-done																										
-
-#if [ $debug ]; then
-#	usercolors=yes
-#fi
-
-## Load and confirm basic configuration values
-
-# bootstrap
-if [ ! -r "$conffile" ]; then
-	echo "Configuration file $conffile not found." 
-	fatal "Configuration file $conffile not found."
-fi
-
-scriptdir=`grep scriptdirectory $conffile | awk '{print $3}'`
-if [ ! -n "$scriptdir" ]; then
-	echo "Cound not find entry 'scriptdirectory' in $conffile" 
-	fatal "Cound not find entry 'scriptdirectory' in $conffile"
-fi
-
-if [ ! -d "$scriptdir" ]; then
-	echo "Script directory $scriptdir not found." 
-	fatal "Script directory $scriptdir not found."
-fi
-
-setfile $conffile
-
-# get global config options (second param is the default)
-getconf configdirectory /etc/backup.d
-getconf reportemail
-getconf reportsuccess yes
-getconf reportwarning yes
-getconf loglevel 3
-getconf when "Everyday at 01:00"
-defaultwhen=$when
-getconf logfile /var/log/backupninja.log
-getconf usecolors "yes"
-getconf SLAPCAT /usr/sbin/slapcat
-getconf LDAPSEARCH /usr/bin/ldapsearch
-getconf RDIFFBACKUP /usr/bin/rdiff-backup
-getconf MYSQL /usr/bin/mysql
-getconf MYSQLHOTCOPY /usr/bin/mysqlhotcopy
-getconf MYSQLDUMP /usr/bin/mysqldump
-getconf PGSQLDUMP /usr/bin/pg_dump
-getconf PGSQLDUMPALL /usr/bin/pg_dumpall
-getconf GZIP /bin/gzip
-getconf RSYNC /usr/bin/rsync
-getconf vservers no
-getconf VSERVERINFO /usr/sbin/vserver-info
-getconf VSERVER /usr/sbin/vserver
-getconf VROOTDIR `if [ -f "$VSERVERINFO" ]; then $VSERVERINFO info SYSINFO |grep vserver-Rootdir | awk '{print $2}'; fi`
-
-if [ ! -d "$configdirectory" ]; then
-	echo "Configuration directory '$configdirectory' not found."
-	fatal "Configuration directory '$configdirectory' not found."
-fi
-
-[ -f "$logfile" ] || touch $logfile
-
-if [ "$UID" != "0" ]; then
-	echo "$0 can only be run as root"
-	exit 1
-fi
-
-if [ "$vservers" == "yes" -a ! -d "$VROOTDIR" ]; then
-	echo "vservers option set in config, but $VROOTDIR is not a directory!"
-	fatal "vservers option set in config, but $VROOTDIR is not a directory!"
-fi
-
-## Process each configuration file
-
-# by default, don't make files which are world or group readable.
-umask 077
-
-# these globals are set by process_action()
-fatals=0
-errors=0
-warnings=0
-actions_run=0
-errormsg=""
-
-if [ "$singlerun" ]; then
-	files=$singlerun
-else
-	files=`find $configdirectory -mindepth 1 ! -name '.*.swp' | sort -n`
-fi
-
-for file in $files; do
-	[ -f "$file" ] || continue
-
-	check_perms $file
-	suffix="${file##*.}"
-	base=`basename $file`
-	if [ "${base:0:1}" == "0" -o "$suffix" == "disabled" ]; then
-		info "Skipping $file"
-		continue
-	fi
-
-	if [ -e "$scriptdir/$suffix" ]; then
-		process_action $file $suffix
-	else
-		error "Can't process file '$file': no handler script for suffix '$suffix'"
-		msg "*missing handler* -- $file"
-	fi
-done
-
-## mail the messages to the report address
-
-if [ $actions_run == 0 ]; then doit=0
-elif [ "$reportemail" == "" ]; then doit=0
-elif [ $fatals != 0 ]; then doit=1
-elif [ $errors != 0 ]; then doit=1
-elif [ "$reportsuccess" == "yes" ]; then doit=1
-elif [ "$reportwarning" == "yes" -a $warnings != 0 ]; then doit=1
-else doit=0
-fi
-
-if [ $doit == 1 ]; then
-	debug "send report to $reportemail"
-	hostname=`hostname`
-	[ $warnings == 0 ] || subject="WARNING"
-	[ $errors == 0 ] || subject="ERROR"
-	[ $fatals == 0 ] || subject="FAILED"
-	
-	{
-		for ((i=0; i < ${#messages[@]} ; i++)); do
-	 		echo ${messages[$i]}
-		done
-		echo -e "$errormsg"
-	} | mail $reportemail -s "backupninja: $hostname $subject"
-fi
-
-if [ $actions_run != 0 ]; then
-	info "FINISHED: $actions_run actions run. $fatals fatal. $errors error. $warnings warning."
-fi
diff --git a/ninjahelper b/ninjahelper
deleted file mode 100755
index 13a4ca9a727f62659327549ba9f8cd9f089d84ce..0000000000000000000000000000000000000000
--- 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