#!/bin/sh

PATH=/bin:/usr/bin:$PATH; export PATH

curDir=`dirname $0`
procName=`basename $0`

. $curDir/dm_incl
. $curDir/dm_text
. $curDir/dm_remote

# ---------------------------------------------------------------------------- #
#
# Copy a model file from DM to Ideas (area = 'ideas')
# Copy a model file from Ideas to DM (area = 'login')
#
# Parameters:
#           input : - area ('login'/'ideas')
#                   - model file from (without suffix)
#                   - model file to (without suffix)
#                   - remove model file from (yes/no) 
#                   - overwrite (yes/no)
#           output: - error code ("0": ok; "1"/"2": error)
#                   - path of model (to) or error message
#
# Author : J. Schmidt, AP221, 11.93
#
# Achtung: Die Prozeduren koennen vom Anwender auf firmenspezifische
#          Gegebenheiten angepasst werden.
#          Bei solchen Aenderungen uebernimmt SNI jedoch keine Gewaehr-
#          leistung fuer den ordnungsgemaessen Ablauf der Prozeduren.
#          Fehler werden nur beruecksichtigt, wenn sie in den ausge-
#          lieferten Prozeduren nachvollzogen werden koennen.
#
# ---------------------------------------------------------------------------- #

set -e
# ---------------------------------------------------------------------------- #
# Set error if a command fails
# ---------------------------------------------------------------------------- #
if [ ! -w $RETURN_FILE ]
then
    touch $RETURN_FILE
    chmod 777 $RETURN_FILE
fi
(eval "echo $ErrCommand") > $RETURN_FILE

# ---------------------------------------------------------------------------- #
# Check parameters
# ---------------------------------------------------------------------------- #
nbParam=5
if test $# -ne $nbParam
then
    (eval "echo $ParameterNotValid") > $RETURN_FILE
    exit 1
fi

# ---------------------------------------------------------------------------- #
# Set parameters to variables
# ---------------------------------------------------------------------------- #
area=$1
modFromName=$2
modToName=$3
remove=$4
overwrite=$5

ideasPath=$HOME"$IDEAS_PATH"

# -------------------------------------------------------------------- #
# Set from and to filenames
# -------------------------------------------------------------------- #
if ( test "$area" = "`whoami`" )
then

    modFromPath=$ideasPath"/"$modFromName
    modToPath=`pwd`"/"$modToName

elif ( test "$area" = "ideas" )
then

    modFromPath=`pwd`"/"$modToName
    modToPath=$ideasPath"/"$modFromName
fi

# -------------------------------------------------------------------- #
# Exists ideas area ?
# -------------------------------------------------------------------- #
if ( test ! -d $ideasPath )
then
    (eval "echo $IdeasAreaNotExists") > $RETURN_FILE
    exit 1
fi

# -------------------------------------------------------------------- #
# Exists model from ?
# -------------------------------------------------------------------- #
model=$modFromPath
if ( test ! -r ${model}${MODF_SUFF}* )
then
    (eval "echo $ModelNotExists" ) > $RETURN_FILE
    exit 1
fi

# -------------------------------------------------------------------- #
# Exists model to ?
# -------------------------------------------------------------------- #
model=$modToPath
if ( test "$overwrite" = "$NO"  &&  test -r ${model}${MODF_SUFF}* )
then
    (eval "echo $ModelExists" ) > $RETURN_FILE
    exit 1
fi


# --------------------------------------------------------------------------- #
# Create model directory and copy files from source to target
# --------------------------------------------------------------------------- #
ret="notok"
if ( test -r ${modFromPath}${MOD_SUFF} )
then
    suff1=${MOD_SUFF}
    suff2=${MOD2_SUFF}
else
    suff1=${MODZ_SUFF}
    suff2=${MODZ2_SUFF}
fi
if ( cp $modFromPath$suff1 $modToPath$suff1 &&\
     cp $modFromPath$suff2 $modToPath$suff2)
then
    ret="ok"
    if ( test "$remove" = "$YES" )
    then
        if ( rm -f ${modFromPath}${MODF_SUFF}* 2> /dev/null )
        then
            :
        fi
    fi
fi

if ( test "$ret" != "ok" )
then 
    (eval "echo $ErrCopyModel") > $RETURN_FILE
    rm -f ${modToPath}${MODF_SUFF}*
    exit 1
fi


# --------------------------------------------------------------------------- #
# Try to change access rights
# --------------------------------------------------------------------------- #
if ( test "$area" = "ideas" )
then
    if ( chmod 777 ${modToPath}${MODF_SUFF}* 2> /dev/null )
    then
        :
    fi
else
    chmod 755 ${modToPath}${MODF_SUFF}*
fi


# --------------------------------------------------------------------------- #
# Return 'ok'
# --------------------------------------------------------------------------- #
echo "0 $modFromPath $modToPath" > $RETURN_FILE
