add_backup ()
{
# This function is used to define a new backup to Dirvish

# set -x # Uncomment to debug this function

# Get a list of available banks

BANK_LIST=$(parse_conf)

ESCAPE=0
until (( ESCAPE == 1 ))
do
  clear
  echo -e "
  \n\n\t\t   DIRVISH ADD A BACKUP
  \n\tSelect Each Option to Add a New Backup
  \n\t1) Enter Hostname
  \n\t2) Select a Bank for this Backup
  \n\t3) Enter Directory Tree to Back up
  \n\t4) Enter Directory Trees to Ignore
  \n\t5) Enter Days to Retain Each Backup
  \n\t6) Add this New Dirvish Backup Definition
  \n\t7) Create the Initial Dirvish Backup
  \n\t8) Main Menu
  \n\n\tSelect Each Option to Add a New Backup
  \n\n\tEnter Option: \c"

  read OPTION  # Read in the user response

  # Perform the desired operation
  case $OPTION in
  1) echo -e "\n\tEnter the Hostname for this Backup: \c"
     read HN
     for B in $BANK_LIST
     do
         P=$(find $B -type d -name $HN)
         if [ ! -z $P ]
         then
             echo -e "\n\tWARNING: Vault $HN Already Exists in the Following Bank:"
             echo -e "\n\t$P"
             echo -e "\n\tDo you want to create a new default.conf file for $HN? (y/n): \c"
             ANS=n # Set the default answer to 'n', No.
             read ANS
             case $ANS in
             y|Y) continue
                  ;;
             n|N) return
                  ;;
             esac
         fi
     done
     ;;
  2) FINISH=0
     until (( FINISH == 1 ))
     do
       clear
       BANK=
       echo -e "\n\n\t\tSELECT A BANK TO STORE THIS BACKUP\n"
       echo -e "\nAvailable Banks:\n"
       for B in $BANK_LIST
       do
            echo -e "\t$B"
       done
       echo -e "\nPlease Enter a Bank: \c:"
       read BANK
       if $(echo $BANK_LIST | grep -q ${BANK})
       then
           echo "$BANK selected for $HN"
           FINISH=1
       else
           echo -e "\nERROR: $BANK is not a Valid Bank"
           sleep 2
           continue
       fi
     done
     ;;
  3) echo -e "\n\tEnter the Directoy Tree to Backup: \c"
     read TREE
     continue
     ;;
  4) clear
     echo -e "\n\n\tDIRECTORY TREE(S) and FILES TO IGNORE\n"
     echo -e "\nThe Specified Directory Tree Contains the Following Files/Directories:\n\n"
     if [ $HN = $(hostname) ]
     then
         ls $TREE | more
     else
         ssh $HN ls $TREE | more
     fi
     echo -e "\nDo you want to Exclude any Files or Directories from the Backups? (y/n): \c"
     read ANS3
     case $ANS3 in
     y|Y) echo -e "\n\tEnter Directories and Files to Ignore One per Line\n"
          echo -e "Enter 99 when finished\n"
          IGNORE_LIST=$(read_input)
          continue
          ;;
     n|N) IGNORE_LIST=$(echo)
          continue
          ;;
       *) echo -e "\nInvalid Entry..."
          ;;
     esac
     ;;
  5) echo -e "\n\tDays before each Backup Expires: \c"
     read DAYS
     continue
     ;;
  6) clear
     echo -e "\n\n\tADD NEW BACKUP TO DIRVISH"
     if [[ -r "${BANK}/${HN}/dirvish/default.conf" ]]
     then
        echo -e "\nWARNING: default.conf File Exists...Rebuild default.conf? (y/n): \c"
        read ANS
        case $ANS in
        y|Y) echo -e "\n\nCreating default.conf Dirvish Configuration File for $HN"
             build_default_conf $HN "$BANK" $DAYS "$TREE" "$IGNORE_LIST"
             echo -e "\nCopying file to: ${BANK}/${HN}/dirvish/default.conf"
             mkdir -p ${BANK}/${HN}/dirvish
             cp -f $DEFAULT_CONF ${BANK}/${HN}/dirvish/default.conf
             echo -e "\n\n...Press ENTER to Continue...\c"
             read ANS
             ;;
          *) break
             ;;
        esac
     else
        echo -e "\n\nCreating default.conf Dirvish Configuration File for $HN"
        build_default_conf $HN "$BANK" $DAYS "$TREE" "$IGNORE_LIST"
        echo -e "\nCopying file to: ${BANK}/${HN}/dirvish/default.conf"
        mkdir -p ${BANK}/${HN}/dirvish
        cp -f $DEFAULT_CONF ${BANK}/${HN}/dirvish/default.conf
        echo -e "\n...Press ENTER to Continue...\c"
        read ANS
     fi
     ;;
  7) clear
     echo -e "\n\n\tCREATE INITIAL DIRVISH BACKUP"
     echo -e "\n"
     if [[ ! -d "${BANK}/${HN}" ]]
     then
        echo -e "\nCreating Vault $HN for this Backup"
        mkdir -p "${BANK}/${HN}"
        mkdir -p "${BANK}/${HN}/dirvish"
     else
        echo -e "\nBackup Vault for $HN Exists...Continuing..."
     fi
     if [[ ! -r "${BANK}/${HN}/dirvish/default.conf" ]]
     then
        # Now we have enough information to build the
        # new default.conf file

        echo -e "Creating default.conf Dirvish Configuration File for $HN"

        build_default_conf $HN "$BANK" $DAYS "$TREE" "$IGNORE_LIST"

        echo -e "\nCopying file to:  ${BANK}/${HN}/dirvish/default.conf"
        cp -f $DEFAULT_CONF ${BANK}/${HN}/dirvish/default.conf

        # Now we need to run an initial backup
        echo -e "\nRun an Initial Backup Now? (y/n): \c"
        read BACK_NOW
        case $BACK_NOW in
        y|Y) echo -e "\nExecuting Initial Dirvish Backup for $HN..."
             dirvish --vault $HN --init
             RC=$?
             echo -e "\nInitial Backup for $HN Completed with a Return Code: $RC"
             echo -e "\nPress Enter to Continue...\c"
             read KEY
             ;;
        n|N) echo -e "\nInitial Backup Skipped..."
             echo -e "\nDo Not Forget to Run an Initial Dirvish Backup!"
             echo -e "\nTo Manually Run an Initial Backup Enter:\n"
             echo -e "\t/usr/sbin/dirvish --vault $HN --init\n"
             echo -e "\nPress Enter to Continue...\c"
             read KEY
             ;;
          *) echo -e "\nInvalid Input..."
            ;;
        esac
     else
        FINISH=0
        until (( FINISH == 1 ))
        do
           echo -e "\nRun an Initial Backup Now? (y/n): \c"
           read BACK_NOW
           case $BACK_NOW in
           y|Y) echo -e "\nExecuting Initial Dirvish Backup for $HN..."
                dirvish --vault $HN --init
                RC=$?
                echo -e "\nInitial Backup for $HN Completed with a Return Code: $RC"
                echo -e "\nPress Enter to Continue...\c"
                read KEY
                FINISH=1
                ;;
            n|N) echo -e "\nInitial Backup Skipped..."
                 echo -e "\nDo Not Forget to Run an Initial Dirvish Backup!"
                 echo -e "\nTo Manually Run an Initial Backup Enter:\n"
                 echo -e "\tdirvish --vault $HN --init\n"
                 echo -e "\nPress Enter to Continue...\c"
                 read KEY
                 FINISH=1
                 ;;
              *) echo -e "Invalid Entry..."
                 sleep 2
                 ;;
            esac
        done
     fi
     continue
     ;;
  8) break
     ;;
  esac
done
}

