#!/bin/sh
#set -xv
#
#       This shell script launches the setup for installing the GeoTAX Master Files
#       from the input media and puts them into the DB directory. 
#
#
#==============================================================================
check_run()
{
Clearit;
xxx=
dbloc=$G1GTXDB
G1CDDIR='/cd/'

while [ ! "$xxx" = "c" ]
do
Clearit;
    $G1ECHO "\n\tThe GeoTAX Master Files load environment is currently set to:\n"
    $G1ECHO "\tGeoTAX Master Files input location:" $G1CDDIR
    $G1ECHO "\tGeoTAX Master Files output location:" $dbloc"\n"
    $G1ECHO "\tEnter c to (c)ontinue install the Master Files with the current file locations"
    $G1ECHO "\tEnter m to (m)odify database input/output locations"
    $G1ECHO "\t   or q to (q)uit\n"
    $G1ECHO "\t   ===> \c"
    read xxx
    case $xxx in
        q|Q)
            $G1ECHO "\n\tUser requested termination.\n"
            exit
        ;;
    esac
    case $xxx in
        m|M)
            $G1ECHO "\n\tWhich do you want to change?\n"
            $G1ECHO "\tEnter 1 to change the GeoTAX Master File input location"
            $G1ECHO "\t   or 2 to change the GeoTAX Master File output location"
            $G1ECHO "\t   or 3 to change both\n"
            $G1ECHO "\t  ===> \c"
            read modio
            case $modio in
                1)      get_pathin
                ;;
                2)      get_pathout
                ;;
                3)      get_pathin
                        get_pathout
                ;;
                *)
                ;;
            esac
        ;;
        c|C) install_files
             xxx=c
        ;;
          *) 
        ;;
     esac
done

}
#===========================================================================
# Get the full path for the db input area
get_pathin()
{
Clearit;
$G1ECHO "\n\tPlease enter full path where the GeoTAX Master Files are located"
$G1ECHO "\t ==> \c"
read G1CDDIR
if [ "$G1CDDIR" = "" -o "$G1CDDIR" = " " ]
then
        $G1ECHO "\n\tYou must enter a valid full path."
        $G1ECHO "\tPress Enter to continue....."
        read pressenter
        get_pathin
fi

$G1ECHO "\n\tThe location of the GeoTAX Master Files to load is: " $G1CDDIR
$G1ECHO "\tIs this correct?\n"

if [ ! -f $G1CDDIR/DataSets.csv ]
then
        $G1ECHO "WARNING - This directory does not appear to contain a valid dataset!\n"        
fi

$G1ECHO "\tEnter (y)es to continue."
$G1ECHO "\t      (n)o to try again.\n"
$G1ECHO "\t   ===> \c"
read yyyy
case $yyyy in
        [yY]*)  yyyy=
        ;;
            *)  get_pathin
        ;;
esac

export G1CDDIR
}

#===========================================================================
# Get the full path for the new db load area
get_pathout()
{
Clearit;
$G1ECHO "\n\tPlease enter full path where you would like to copy"
$G1ECHO "\tthe GeoTAX Master Files ==> \c"
read dbloc
if [ "$dbloc" = "" -o "$dbloc" = " " ]
then
        $G1ECHO "\n\tYou must enter a valid full path."
        $G1ECHO "\tPress Enter to continue....."
        $G1ECHO "\t"$G1CDDIR", which are needed for input."
        read pressenter
        get_pathout
fi
$G1ECHO "\n\tThe new GeoTAX Master Files location will be: " $dbloc
$G1ECHO "\tIs this correct?\n"
$G1ECHO "\tEnter (y)es to continue."
$G1ECHO "\t      (n)o to try again.\n"
$G1ECHO "\t   ===> \c"
read yyyy
case $yyyy in
        [yY]*)  yyyy=
        ;;
            *)  get_pathout
        ;;
esac

check_dir
export dbloc
}

#===========================================================================
#
# Function to clear the screen. Try the clear shell command
# first, then try the tput command with a clear parameter and then
# try to clear each position (line) of the screen the hard way.
#
Clearit()
{
{ clear; } 2>/dev/null  ||
        { tput clear; } 2>/dev/null  ||
                { for i in \
                p01 p02 p03 p04 p05 p06 p07 p08 p09 p10   \
                p11 p12 p13 p14 p15 p16 p17 p18 p19 p20   \
                p21 p22 p23 p24 p25 p26 p27 p28 p29 p30   \
                p31 p32 p33 p34 p35 p36 p37 p38 p39 p40
                do
                        echo ""
                done
                }
}

#===========================================================================
#  create new db location based upon user's new entered path
check_dir()
{
if [ ! -d "$dbloc" ]    # check to see if the install area is there
then
        $G1ECHO "\n\tGeoTAX Master Files output location "$dbloc" does not exist."
        $G1ECHO "\tDo you want to create it now?\n"
        $G1ECHO "\tEnter (y)es to create the new GeoTAX Master Files area."
        $G1ECHO "\t      (n)o to exit.\n"
        $G1ECHO "\t   ===> \c"
        read yyyy
        case $yyyy in
                [yY]*)  curr_dir=$PWD         #  Preserve the current location
                        mk_dir                #  Call the make directory mk_dir function
                        cd $curr_dir          #  Change to the previous location
                ;;
                    *)  $G1ECHO "\n\tYou must create the new GeoTAX Master Files install area."
                        exit 1
                ;;
        esac
fi
}

#===========================================================================
#  create new db location based upon user's new entered path
mk_dir()
{
  cd /
  for n in `$G1ECHO $dbloc | tr '/' ' '`
  do
    if [ ! -d "$n" ]
    then
         mkdir $n
    fi
  cd $n
  done
}

#===========================================================================
install_files()
{

  copy_files
}
#===========================================================================

copy_files()
{
  check_dir
  
  $G1ECHO "\n\tCopying files from $G1CDDIR to $dbloc.\n"
  $G1ECHO "\n\tNo subdirectories will be copied, messages about directories can be safely ignored.\n"
  $G1ECHO "\n\tThis may take several minutes...\n"
  cp $G1CDDIR/* $dbloc
}
#===========================================================================

Clearit;
check_run;
Clearit;
