#!/bin/sh

# Copyright notice: Copyright (c) 2005 - 2025 Veryant

ISCOBOL_VERSION=2025R2
ISCOBOL_BVERSION=2025


ISCOBOLR_BIN="\
cobfileio \
dcic \
fscsc \
gife \
isconfig \
iscrun \
iscclient \
iscupdater \
isdbg \
ismigrate \
issort \
jdbc2fd \
jutil \
cpk \
isl \
stream2wrk \
ctutil \
trun
"
ISCOBOLT_BIN="\
iscclient \
iscupdater

"
ISCOBOL_BIN=" \
iscc \
axc \
cpgen \
$ISCOBOLR_BIN 
"
ISCOBOLS_BIN="\
iscserver \
isserver \
$ISCOBOLR_BIN  
"
ISCOBOLL_BIN="\
iscbalancer  
isbalancer  
isbalancer.properties  
"
ISCOBOLL_LIB="\
iscobol.jar \
ctree-rtg.jar
"
ISCOBOLRC_BIN="\
$ISCOBOL_BIN \
iscremotecc 
isremotecc 
"
ISCOBOLDB_LIB="\
"
ISCOBOLDB_BIN="\
edbiis
"
ISCOBOL_ETC="\
iscobol.properties 
"
ISCOBOL_INCLUDE="\
SQLCA
"
ISCOBOLR_LIB="\
asm-9.6.jar \
asm-commons-9.6.jar \
asm-tree-9.6.jar \
barcode4j.jar \
charva.jar \
commons-codec-1.13.jar \
commons-collections4-4.4.jar \
commons-compress-1.19.jar
commons-logging.jar \
commons-logging-api.jar \
commons-math3-3.6.1.jar \
DJNativeSwing.jar \
DJNativeSwing-SWT.jar \
iscobol.jar \
ctree-rtg.jar \
image4j-0.7.2.jar \
openpdf-2.0.3v1.jar \
jacoco-core-0.8.11.jar \
jcalendar*.jar \
jcommon-xml-1.0.23.jar \
jcommon-1.0.23.jar \
jdom.jar \
jfreechart*.jar \
jna-5.15.0.jar \
jna-platform-5.15.0.jar \
joe-1.3.jar \
poi-*.jar \
swt-*.jar \
isprofiler.jar \
isupdater.jar \
javassist.jar \
bc*-jdk18on-1.78.1.jar \
wow.jar \
wowax.jar \
xmlbeans-3.1.0.jar \
zxing-core-1.7.jar \
flatlaf-3.6.jar
"
ISCOBOLT_LIB="\
bcprov-jdk18on-1.78.1.jar \
barcode4j.jar \
commons-codec-1.13.jar \
commons-collections4-4.4.jar \
commons-compress-1.19.jar
commons-logging-api.jar \
commons-logging.jar \
commons-math3-3.6.1.jar
DJNativeSwing.jar \
DJNativeSwing-SWT.jar \
iscobol.jar \
ctree-rtg.jar \
isupdater.jar \
image4j-0.7.2.jar \
openpdf-2.0.3v1.jar \
jcommon-xml-1.0.23.jar \
jcommon-1.0.23.jar \
jcalendar-1.4.jar \
jdom.jar \
jfreechart-*.jar \
jna-5.2.0.jar \
jna-platform-5.2.0.jar \
poi-*.jar \
SparseBitSet*.jar
swt-*.jar \
wow.jar \
wowax.jar \
xmlbeans-3.1.0.jar \
zxing-core-1.7.jar \
flatlaf-3.6.jar
"
ISCOBOLT_NATIVE="\
libdyncall.so \
libdyncall_n.so \
libflatlaf-3.6-linux-x86_64.so
"
ISCOBOL_LIB="\
$ISCOBOLR_LIB \
iscobol.jar \
ctree-rtg.jar 
"
ISCOBOL_SAMPLE="\
as \
audit \
compiler-pre-process \
extend-and-customize \
data-access \
HELLO-WORLD.cbl
is-c \
is-java \
is-joe \
isapplication \
iscontrolset \
isdef \
ismigrate \
issamples \
jasper \
modernization \
multilanguage \
multithread \
io-performance \
limit-tests \
test-and-coverage \
unicode \
vscode \
webclient \
isApplication.sh \
isControlset.sh \
isControlsetDebug.sh \
Samples.sh 
"
ISCOBOL_ROOT="\
CHANGELOG.md \
COPYRIGHT.md \
EULA.md \
README.md
"
ISCOBOLWD_LIB="\
bc*-jdk18on-1.78.1.jar \
ctree-rtg.jar \
iscobol.jar \
isprofiler.jar \
isupdater.jar \
openpdf-2.0.3v1.jar 
"
ISCOBOLWD_BIN="\
cobfileio \
dcic \
fscsc \
gife \
isconfig \
iscupdater \
isdbg \
ismigrate \
issort \
jdbc2fd \
jutil \
cpk \
isl \
stream2wrk \
ctutil
"

ISCOBOLUD_LIB="\
iscobol.jar \
vjdbc.jar \
javacsv.jar \
jisql-2.0.11.jar \
jopt-simple-3.2.jar
"

# Subroutines
getOS()
{
OS=`uname -a`
case $OS in
  SunOS*)    MACHINE_SUFFIX="SunOS.32"         SHARED_LIB_EXT="so" ;;
  SCO*)      MACHINE_SUFFIX="SCO_SV"           SHARED_LIB_EXT="so";;
  Linux*)    MACHINE_SUFFIX="Linux.32.i586"    SHARED_LIB_EXT="so" ;;
  Darwin*)   MACHINE_SUFFIX="MacOSX.64.x86_64" SHARED_LIB_EXT="dylib" ISCOBOL_JDK_ROOT="/usr" ;;
  AIX*)      MACHINE_SUFFIX="AIX.32"           SHARED_LIB_EXT="so" ;;
  HP-UX*9000*) MACHINE_SUFFIX="HP-UX.9000.32"  SHARED_LIB_EXT="sl" ;;  
  HP-UX*)    MACHINE_SUFFIX="HP-UX.32"         SHARED_LIB_EXT="so" ;;
esac

BIT=`uname -a`
case $BIT in
  SunOS*64)    MACHINE_SUFFIX="SunOS.64"        SHARED_LIB_EXT="so" ;;
  Linux*64*)   MACHINE_SUFFIX="Linux.x86_64"    SHARED_LIB_EXT="so" ;;
  AIX*64)      MACHINE_SUFFIX="AIX.64"          SHARED_LIB_EXT="so" ;;
  HP-UX*9000*64) MACHINE_SUFFIX="HP-UX.9000.64" SHARED_LIB_EXT="sl" ;;  
  HP-UX*64)      MACHINE_SUFFIX="HP-UX.64"      SHARED_LIB_EXT="so" ;;
esac

}

getJavac()
{
if [ -z "${ISCOBOL_JDK_ROOT}" ]
then

    _JAVAC_LOCATION=`type javac | cut -f3 -d' '` 

    while [ -h "$_JAVAC_LOCATION" ]; do
       ls=`ls -ld "$_JAVAC_LOCATION"`
       link=`expr "$ls" : '.*-> \(.*\)$'`
       if expr "$link" : '/.*' > /dev/null; then
         _JAVAC_LOCATION="$link"
       else
         _JAVAC_LOCATION=`dirname "$_JAVAC_LOCATION"`/"$link"
       fi
    done  

    if [ -z "$_JAVAC_LOCATION" ]
    then
        echo "ERROR: Could not locate JDK. Please ensure that 'javac' is"
        echo "on your PATH or set ISCOBOL_JDK_ROOT"
        exit 1
    fi
    _JDK_BINDIR=`dirname $_JAVAC_LOCATION`
    ISCOBOL_JDK_ROOT=`dirname $_JDK_BINDIR`
fi

}

echobsd ()
{
  echo -n "$*"
}

echoiBCS2 ()
{
  echo "${*}\c"
}

if [ `echo "x\c"` = "x" ]; then
  echonl=echoiBCS2
else
  echonl=echobsd
fi

YesNo () {
  ans=;
  DefAns=`echo $2| tr "[a-z]" "[A-Z]"| cut -c -1`
  SHOW='Y/n'
  if [ "X$DefAns" = "XN" ]; then SHOW='y/N'; fi
  if [ "X$DefAns" != "XY" -a "X$DefAns" != "XN" ]; then DefAns='Y'; fi
  while [ "X$ans" = "X" ]; do
    $echonl "$1 ($SHOW)? "
    read ans
    ans=`echo $ans| tr "[a-z]" "[A-Z]"`
    if [ "X$ans" = "X" ]; then ans=$DefAns; fi
    case $ans in
      Y|YES) ans=yes;;
      N|NO ) ans=no;;
      *)     ans=;;
    esac
  done
}

InsYesNo () {
  YesNo "Do you want to install the $1." "$2"
}

ReadKey () {
  ans=;
  while [ "X$ans" = "X" ]; do
    $echonl "$1 [ $2 ] "
    read ans
    ans=`echo $ans| tr "[a-z]" "[A-Z]"| cut -c -2`
    if [ "X$ans" = "X" ]; then ans=`echo $3| cut -c -2`; fi
    for arg in $2; do
      if [ "X$arg" = "X$ans" ]; then ans=$arg; break; fi
    done
    if [ "X$arg" != "X$ans" ]; then ans=; fi
  done
}
ShowOpt () {
  len=`echo "$1" | wc -c | sed -e 's/ //g'`
  count=`expr $2 - $len`
  $echonl $1
  echo $count "$3" | awk '{ for (i=0; i<= $1; i++) printf $2 }'
}

_Logo () {
  cat << EOF


Please read README.md to learn how to use isCOBOL and information
specific to isCOBOL ${ISCOBOL_VERSION}.


EOF
}

Logo () {
  clear
  s0=`Center "isCOBOL EVOLVE Installation" 79`
  s1=`Center "For isCOBOL Release ${ISCOBOL_VERSION}" 79`
  s2=`Center "Copyright (c) 2005 - 2025 Veryant" 79`
  cat << EOF
===============================================================================

$s0
$s1
$s2

===============================================================================
EOF
}

Center () {
  len=`echo "$1" | wc -c | sed -e 's/ //g'`
  left=`expr $2 - \( $2 - $len \) / 2`
  printf "%${left}s" "$1"
}

ShowMain () {
  Logo
  cat << EOF

Install Components:

    [0] `ShowOpt "$ISCOBOLALL_TITLE" 50 "."` (${ISCOBOLALL_INSTALL})
    [1] `ShowOpt "$ISCOBOL_TITLE" 50 "."` (${ISCOBOL_INSTALL})
    [2] `ShowOpt "$ISCOBOLR_TITLE" 50 "."` (${ISCOBOLR_INSTALL})
    [3] `ShowOpt "$ISCOBOLT_TITLE" 50 "."` (${ISCOBOLT_INSTALL})
    [4] `ShowOpt "$ISCOBOLRC_TITLE" 50 "."` (${ISCOBOLRC_INSTALL})
    [5] `ShowOpt "$ISCOBOLWD_TITLE" 50 "."` (${ISCOBOLWD_INSTALL})
    [6] `ShowOpt "$ISCOBOLDB_TITLE" 50 "."` (${ISCOBOLDB_INSTALL})
    [7] `ShowOpt "$ISCOBOLS_TITLE" 50 "."` (${ISCOBOLS_INSTALL})
    [8] `ShowOpt "$ISCOBOLL_TITLE" 50 "."` (${ISCOBOLL_INSTALL})

Install Path:
    [P] $ISCOBOL_PATH_TITLE: $ISCOBOL_INSTALLATION_TITLE

JDK Path:
    [J] $JDK_PATH_TITLE: $JDK_INSTALLATION_PATH

[S] Start Install        [Q] Quit

==============================================================================
EOF
}


CompilerMenu () {
  echo
    InsYesNo "$ISCOBOL_TITLE" "$ISCOBOL_INSTALL"
    ISCOBOL_INSTALL=$ans
}
RuntimeMenu () {
  echo
    InsYesNo "$ISCOBOLR_TITLE" "$ISCOBOLR_INSTALL"
    ISCOBOLR_INSTALL=$ans
}
ThinclientMenu () {
  echo
    InsYesNo "$ISCOBOLT_TITLE" "$ISCOBOLT_INSTALL"
    ISCOBOLT_INSTALL=$ans
}
ServerMenu () {
  echo
    InsYesNo "$ISCOBOLS_TITLE" "$ISCOBOLS_INSTALL"
    ISCOBOLS_INSTALL=$ans
}
LoadbalancerMenu () {
  echo
    InsYesNo "$ISCOBOLL_TITLE" "$ISCOBOLL_INSTALL"
    ISCOBOLL_INSTALL=$ans
}
RemoteCompilerMenu () {
  echo
    InsYesNo "$ISCOBOLRC_TITLE" "$ISCOBOLRC_INSTALL"
    ISCOBOLRC_INSTALL=$ans
}
DatabaseBridgeMenu () {
  echo
    InsYesNo "$ISCOBOLDB_TITLE" "$ISCOBOLDB_INSTALL"
    ISCOBOLDB_INSTALL=$ans
}
WD2Menu () {
  echo
    InsYesNo "$ISCOBOLWD_TITLE" "$ISCOBOLWD_INSTALL"
    ISCOBOLWD_INSTALL=$ans
}

AllMenu () {
  echo
    InsYesNo "$ISCOBOLALL_TITLE" "$ISCOBOLALL_INSTALL"
    ISCOBOL_INSTALL=$ans
    ISCOBOLR_INSTALL=$ans
    ISCOBOLT_INSTALL=$ans
    ISCOBOLS_INSTALL=$ans
    ISCOBOLL_INSTALL=$ans
    ISCOBOLRC_INSTALL=$ans
    ISCOBOLDB_INSTALL=$ans
    ISCOBOLWD_INSTALL=$ans
    ISCOBOLWD_INSTALL=$ans

    ISCOBOLALL_INSTALL=$ans
}
OSMenu () {
  echo
    $echonl "$OS_TITLE: "
    read ans
    if [ "$ans" = "" ]; then
       echo "Possible choices are: " 
       echo 
       echo "Linux.32.i586, Linux.64.x86_64, AIX.32, AIX.64, HP-UX.32, HP-UX.64"
       echo "HP-UX.9000.32, HP-UX.9000.64, SunOS.32, SunOS.64 , MacOSX.64.x86_64 , SCO_SR , SCO_SV" 
       echo
       $echonl "$OS_TITLE: "
       read ans
    fi
    if [ "$ans" != "" ]; then
          MACHINE_SUFFIX=$ans
    fi
}

InstallPathMenu () {
    $echonl "$ISCOBOL_PATH_TITLE: "
    read ans
    if [ "$ans" != "" ]; then
      if [ -d "$ans" ]; then
          ISCOBOL_INSTALLATION_TITLE=$ans
          ISCOBOL_INSTALLATION_PATH=$ans/isCOBOL_SDK$ISCOBOL_VERSION
      fi
    fi
}
InstallJDKMenu () {
    $echonl "$JDK_PATH_TITLE: "
    read ans
    if [ "$ans" != "" ]; then
          JDK_INSTALLATION_PATH=$ans
    fi
}


ISCOBOLC_TITLE="isCOBOL Compiler"
ISCOBOL_TITLE="isCOBOL Compiler (includes [2] & [3])"
ISCOBOL_INSTALL="yes"
ISCOBOLR_TITLE="isCOBOL Runtime (includes [3])"
ISCOBOLR_TITLE_FLAT="isCOBOL Runtime"
ISCOBOLR_INSTALL="no"
ISCOBOLT_TITLE="isCOBOL ThinClient"
ISCOBOLT_INSTALL="no"
ISCOBOLRC_TITLE="isCOBOL RemoteCompiler"
ISCOBOLRC_INSTALL="no"
ISCOBOLWD_TITLE="isCOBOL EIS"
ISCOBOLWD_INSTALL="no"
ISCOBOLDB_TITLE="isCOBOL DatabaseBridge"
ISCOBOLDB_INSTALL="no"
ISCOBOLS_TITLE="isCOBOL Server"
ISCOBOLS_INSTALL="no"
ISCOBOLL_TITLE="isCOBOL LoadBalancer"
ISCOBOLL_INSTALL="no"
ISCOBOLALL_TITLE="All products"
ISCOBOLALL_INSTALL="no"


OS_TITLE="Operating System to be used" 
MACHINE_SUFFIX="unknow"

ISCOBOL_PATH_TITLE="isCOBOL parent directory"
ISCOBOL_INSTALLATION_PATH=$HOME/veryant/isCOBOL_SDK$ISCOBOL_VERSION
ISCOBOL_INSTALLATION_TITLE=$HOME/veryant

ISCOBOL_COMPILER_LIC=""
ISCOBOL_RUNTIME_LIC=""
ISCOBOL_LB_LIC=""
ISCOBOL_DB_LIC=""
ISCOBOL_WD_LIC=""

getOS
JDK_INSTALLATION_PATH=$ISCOBOL_JDK_ROOT

JDK_PATH_TITLE="JDK install directory"
getJavac
JDK_INSTALLATION_PATH=$ISCOBOL_JDK_ROOT

while [ 1 ]; do
  ShowMain
  ReadKey "Please press" "0 1 2 3 4 5 6 7 8 P J S Q"
  case $ans in
  0) AllMenu
     ;;
  1) CompilerMenu
     ;;
  2) RuntimeMenu
     ;;
  3) ThinclientMenu
     ;;
  4) RemoteCompilerMenu
     ;;
  5) WD2Menu
     ;;
  6) DatabaseBridgeMenu
     ;;
  7) ServerMenu
     ;;
  8) LoadbalancerMenu
     ;;
  P) InstallPathMenu
     ;;
  J) InstallJDKMenu
     ;;
  S) break
     ;;
  Q) exit 1
     ;;
  esac
done

echo "Start install ......"

if [ ! -d ${ISCOBOL_INSTALLATION_PATH} ]; then
  mkdir "${ISCOBOL_INSTALLATION_PATH}"
else
  YesNo "Do you want to remove the old version." "NO"
  if [ $ans = no ]; then
    echo "Installation updating."
  else
    rm `ls --ignore=*.tar --ignore=setup ` -rf
  fi
fi

echo
echo "Installing: " $ISCOBOL_TITLE "for" $MACHINE_SUFFIX 
echo " on" ${ISCOBOL_INSTALLATION_PATH} 
echo

rm -rf .tmp
mkdir .tmp
cd .tmp
tar -xf ../isCOBOL_2025_R2_1158_10_20251128_41083_Linux.64.x86_64.tar

mkdir -p ${ISCOBOL_INSTALLATION_PATH}/bin

#default java to be used

cat << EOF > ${ISCOBOL_INSTALLATION_PATH}/bin/default_java.conf

# Generated from isCOBOL ${ISCOBOL_VERSION} setup

ISCOBOL=${ISCOBOL_INSTALLATION_PATH}
ISCOBOL_JDK_ROOT=$JDK_INSTALLATION_PATH
ISCOBOL_JRE_ROOT=$JDK_INSTALLATION_PATH

EOF

#isCOBOL Compiler and Runtime

if [ "$ISCOBOL_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOL_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/jars"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/sample"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/native"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/etc"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/include"

   for i in $ISCOBOL_ROOT
   do 
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" && 
      (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOL_BIN
   do 
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" && 
        (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOL_LIB
   do 
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" && 
        (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOL_SAMPLE
   do 
     if ls sample/$i 1> /dev/null 2>&1; then
       cp -r -f sample/$i "${ISCOBOL_INSTALLATION_PATH}/sample" && 
        (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed ($i)" )
     fi  
   done
   
   if ls "${ISCOBOL_INSTALLATION_PATH}/sample/webclient" 1> /dev/null 2>&1; then
     cp -r -f  "${ISCOBOL_INSTALLATION_PATH}/sample/webclient/encapsulated/html/iframe/menu/dist/"* \
               "${ISCOBOL_INSTALLATION_PATH}/sample/webclient/encapsulated/html/div/dist" 
   fi            
   
   for i in $ISCOBOL_INCLUDE
   do 
     cp -r -f include/$i "${ISCOBOL_INSTALLATION_PATH}/include" && 
      (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOL_ETC
   do 
     cp -r -f etc/$i "${ISCOBOL_INSTALLATION_PATH}/etc" && 
      (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed ($i)" )
   done

   cp -r -f "native" "${ISCOBOL_INSTALLATION_PATH}" && 
      (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed (native files)" )

   cp -r -f "jars" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed (jars files)" )

   cp -r -f "javadoc" "${ISCOBOL_INSTALLATION_PATH}"/javadoc && 
      (:) || ( echo "ERROR!:" $ISCOBOL_TITLE " installation failed (javadoc)" )

fi

# isCOBOL Runtime 

if [ "$ISCOBOLR_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOLR_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/jars"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/native"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/etc"

   for i in $ISCOBOL_ROOT
   do
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOLR_BIN
   do
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" &&
        (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOLR_LIB
   do
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" &&
        (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOL_ETC
   do
     cp -f -r etc/$i "${ISCOBOL_INSTALLATION_PATH}/etc" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed ($i)" )
   done

   cp -r -f "native" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed (native files)" )

   cp -r -f "jars" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed (jars files)" )

fi

# isCOBOL Thin Client

if [ "$ISCOBOLT_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOLT_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/native/lib"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"

   for i in $ISCOBOL_ROOT
   do
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLT_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOLT_BIN
   do
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" &&
        (:) || ( echo "ERROR!:" $ISCOBOLT_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOLT_LIB
   do
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" &&
        (:) || ( echo "ERROR!:" $ISCOBOLT_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOLT_NATIVE
   do
     if [ "$MACHINE_SUFFIX" != 'MacOSX.64.x86_64' ]; then
     cp -f -r native/lib/$i "${ISCOBOL_INSTALLATION_PATH}/native/lib" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed ($i)" )
     fi
   done

   cp -r -f "jars" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed (jars files)" )

fi

# isCOBOL Server

if [ "$ISCOBOLS_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOLS_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/native"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/etc"

   for i in $ISCOBOL_ROOT
   do
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLS_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOLS_BIN
   do
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" &&
        (:) || ( echo "ERROR!:" $ISCOBOLS_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOLR_LIB
   do
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" &&
        (:) || ( echo "ERROR!:" $ISCOBOLS_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOL_ETC
   do
     cp -f -r etc/$i "${ISCOBOL_INSTALLATION_PATH}/etc" &&
      (:) || ( echo "ERROR!:" $ISCOBOLS_TITLE " installation failed ($i)" )
   done

   cp -r -f "native" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLS_TITLE " installation failed (native files)" )

   cp -r -f "jars" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed (jars files)" )

   MYHOST=`hostname`
 

  cat << EOF > ${ISCOBOL_INSTALLATION_PATH}/bin/isserver.options

# Generated from isCOBOL ${ISCOBOL_VERSION} setup

# Use following variables to override default settings:
# ISSERVER_HOME
# ISSERVER_OPTS
# ISSERVER_JAVA_EXE
ISSERVER_JAVA_OPTS=-XX:+HeapDumpOnOutOfMemoryError
# ISSERVER_LOG_FILE
# ISSERVER_PID_FILE
# 
# for example: 
# ISSERVER_HOME=/home/iscobol ISSERVER_JAVA_EXE=/var/share/jdk8/bin/java ./isserver start

EOF
 
fi

#isCOBOL Load Balancer

if [ "$ISCOBOLL_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOLL_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"

   for i in $ISCOBOL_ROOT
   do
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLL_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOLL_BIN
   do
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" &&
        (:) || ( echo "ERROR!:" $ISCOBOLL_TITLE " installation failed ($i)" )
     fi   
   done

   for i in $ISCOBOLL_LIB
   do
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" &&
        (:) || ( echo "ERROR!:" $ISCOBOLL_TITLE " installation failed ($i)" )
      fi  
   done

   cp -r -f "jars" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLR_TITLE " installation failed (jars files)" )
      
   cat << EOF > ${ISCOBOL_INSTALLATION_PATH}/bin/isbalancer.options

# Generated from isCOBOL ${ISCOBOL_VERSION} setup

# Use following variables to override default settings:
# ISBALANCER_HOME
# ISBALANCER_OPTS
# ISBALANCER_JAVA_EXE
# ISBALANCER_JAVA_OPTS
# ISBALANCER_LOG_FILE
# ISBALANCER_PID_FILE
# 
# for example: 
# ISBALANCER_HOME=/home/iscobol ISBALANCER_JAVA_EXE=/var/share/jdk8/bin/java ./isbalancer start

EOF
 
fi

# isCOBOL Remote Compiler

if [ "$ISCOBOLRC_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOLRC_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"

   for i in $ISCOBOL_ROOT
   do
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLRC_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOLRC_BIN
   do
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" &&
        (:) || ( echo "ERROR!:" $ISCOBOLRC_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOL_LIB
   do
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" &&
        (:) || ( echo "ERROR!:" $ISCOBOLRC_TITLE " installation failed ($i)" )
      fi  
   done

   cat << EOF > ${ISCOBOL_INSTALLATION_PATH}/bin/isremotecc.options

# Generated from isCOBOL ${ISCOBOL_VERSION} setup

# Use following variables to override default settings:
# ISREMOTECC_HOME
# ISREMOTECC_OPTS
# ISREMOTECC_JAVA_EXE
# ISREMOTECC_JAVA_OPTS
# ISREMOTECC_LOG_FILE
# ISREMOTECC_PID_FILE
# 
# for example: 
# ISREMOTECC_HOME=/home/iscobol ISREMOTECC_JAVA_EXE=/var/share/jdk8/bin/java ./isremotecc start

EOF
   
fi

# isCOBOL Database Bridge

if [ "$ISCOBOLDB_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOLDB_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/sample"

   for i in $ISCOBOL_ROOT
   do
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLDB_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOLDB_BIN
   do
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" &&
        (:) || ( echo "ERROR!:" $ISCOBOLDB_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOLDB_LIB
   do
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" &&
        (:) || ( echo "ERROR!:" $ISCOBOLDB_TITLE " installation failed ($i)" )
      fi  
   done

   cp -f -r "sample/easydb" "${ISCOBOL_INSTALLATION_PATH}/sample/easydb" &&
      (:) || ( echo "ERROR!:" $ISCOBOLDB_TITLE " installation failed (easydb sample)" )

   cp -f -r "easydb" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLDB_TITLE " installation failed (easydb template)" )

fi

# isCOBOL WD2/EIS

if [ "$ISCOBOLWD_INSTALL" = 'yes' ]; then
   echo "Installing: " $ISCOBOLWD_TITLE
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/bin"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/jars"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/lib"
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/native" 
   mkdir -p "${ISCOBOL_INSTALLATION_PATH}/sample"   

   for i in $ISCOBOL_ROOT
   do
     cp -f $i "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLWD_TITLE " installation failed ($i)" )
   done

   for i in $ISCOBOLWD_LIB
   do
     if ls lib/$i 1> /dev/null 2>&1; then
       cp -f lib/$i "${ISCOBOL_INSTALLATION_PATH}/lib" &&
        (:) || ( echo "ERROR!:" $ISCOBOLWD_TITLE " installation failed ($i)" )
      fi  
   done

   for i in $ISCOBOLWD_BIN
   do
     if ls bin/$i 1> /dev/null 2>&1; then
       cp -f bin/$i "${ISCOBOL_INSTALLATION_PATH}/bin" &&
        (:) || ( echo "ERROR!:" $ISCOBOLWD_TITLE " installation failed ($i)" )
      fi  
   done
   
   cp -r -f "native" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLWD_TITLE " installation failed (native files)" )

   cp -r -f "jars" "${ISCOBOL_INSTALLATION_PATH}" &&
      (:) || ( echo "ERROR!:" $ISCOBOLWD_TITLE " installation failed (jars files)" )   

   cp -r -f "sample/eis" "${ISCOBOL_INSTALLATION_PATH}/sample/eis" &&
      (:) || ( echo "ERROR!:" $ISCOBOLWD_TITLE " installation failed (eis sample)" )

fi


# Main Start
echo 

YesNo "Do you want to license installed products?" "NO"
if [ $ans = 'yes' ]; then
  cat << EOF >> ${HOME}/iscobol.properties

# Generated from isCOBOL ${ISCOBOL_VERSION} setup

EOF
   if [ "$ISCOBOL_INSTALL" = 'yes' ] && [ "$ISCOBOL_COMPILER_LIC" = '' ]; then
      $echonl "$ISCOBOLC_TITLE License: "
      read ISCOBOL_COMPILER_LIC
      cat << EOF >> ${HOME}/iscobol.properties
iscobol.compiler.license.${ISCOBOL_BVERSION}=$ISCOBOL_COMPILER_LIC
EOF
   fi
   if [ "$ISCOBOL_INSTALL" = 'yes' ] && [ "$ISCOBOL_RUNTIME_LIC" = '' ]; then
      $echonl "$ISCOBOLR_TITLE_FLAT License: "
      read ISCOBOL_RUNTIME_LIC
      cat << EOF >> ${HOME}/iscobol.properties
iscobol.license.${ISCOBOL_BVERSION}=$ISCOBOL_RUNTIME_LIC
EOF
   fi
   if [ "$ISCOBOLR_INSTALL" = 'yes' ] && [ "$ISCOBOL_RUNTIME_LIC" = '' ]; then
      $echonl "$ISCOBOLR_TITLE_FLAT License: "
      read ISCOBOL_RUNTIME_LIC
      cat << EOF >> ${HOME}/iscobol.properties
iscobol.license.${ISCOBOL_BVERSION}=$ISCOBOL_RUNTIME_LIC
EOF
   fi
   if [ "$ISCOBOLRC_INSTALL" = 'yes' ] && [ "$ISCOBOL_COMPILER_LIC" = '' ]; then
      $echonl "$ISCOBOLC_TITLE License: "
      read ISCOBOL_COMPILER_LIC
      cat << EOF >> ${HOME}/iscobol.properties
iscobol.compiler.license.${ISCOBOL_BVERSION}=$ISCOBOL_COMPILER_LIC
EOF
   fi
   if [ "$ISCOBOLL_INSTALL" = 'yes' ] && [ "$ISCOBOL_LB_LIC" = '' ]; then
      $echonl "$ISCOBOLL_TITLE License: "
      read ISCOBOL_LB_LIC
      cat << EOF >> ${HOME}/iscobol.properties
iscobol.balancer.license.${ISCOBOL_BVERSION}=$ISCOBOL_LB_LIC
EOF
   fi
   if [ "$ISCOBOLDB_INSTALL" = 'yes' ] && [ "$ISCOBOL_DB_LIC" = '' ]; then
      $echonl "$ISCOBOLDB_TITLE License: "
      read ISCOBOL_DB_LIC
      cat << EOF >> ${HOME}/iscobol.properties  
iscobol.easydb.license.${ISCOBOL_BVERSION}=$ISCOBOL_DB_LIC
EOF
   fi
   if [ "$ISCOBOLWD_INSTALL" = 'yes' ] && [ "$ISCOBOL_WD_LIC" = '' ]; then
      $echonl "$ISCOBOLWD_TITLE License: "
      read ISCOBOL_WD_LIC
      cat << EOF >> ${HOME}/iscobol.properties
iscobol.eis.license.${ISCOBOL_BVERSION}=$ISCOBOL_WD_LIC
EOF
   fi   
fi

#clean up temporary directory
cd ..
rm -rf .tmp
_Logo
