#!/bin/sh

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

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

. $curDir/dm_incl
. $curDir/dm_text

# ---------------------------------------------------------------------------- #
#
# Remove a drawing from designer or release area.
#
# Parameter:
#           input : - area type ('D' / 'R')
#                   - area ('login' / 'R')
#                   - project or "-1" (designer area)
#                   - drawing name or partNb.Ver
#           output: - error code ("0": ok; "1"/"2": error)
#                   - path of drawing/partNb.Ver  or error message
#                   - basename of drawing/partNb.Ver directory
#
# Author : J. Schmidt, AP221, 11.91
#
# 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=4
if test $# -ne $nbParam
then
    (eval "echo $ParameterNotValid") > $RETURN_FILE
    exit 1
fi

# ---------------------------------------------------------------------------- #
# Set parameters to variables
# ---------------------------------------------------------------------------- #
areaType=$1
area=$2
project=$3
drawName=$4

# ---------------------------------------------------------------------------- #
# Remove from release area ?
# ---------------------------------------------------------------------------- #
if ( test "$areaType" = $RELEASE_AREA )
then

    projPath=$RELEASES_PATH/$project$PRO_SUFF

    # ------------------------------------------------------------------------ #
    # Exists project ?
    # ------------------------------------------------------------------------ #
    if ( test ! -d $projPath )
    then
        (eval "echo $ProjectNotExists") > $RETURN_FILE
        exit 1
    fi

    # ------------------------------------------------------------------------ #
    # Exists partNb.Ver ?
    # ------------------------------------------------------------------------ #
    partNbPath=$projPath"/"$drawName$REL_SUFF
    if ( test ! -d $partNbPath )
    then
        (eval "echo $DrawingNotExists" ) > $RETURN_FILE
        exit 1
    fi
    if ( test ! -w $partNbPath )
    then
        drawPath=$partNbPath
        (eval "echo $DrawingNoAccess") > $RETURN_FILE
        exit 1
    fi

    # ------------------------------------------------------------------------ #
    # Remove content of drawing directory  
    # ------------------------------------------------------------------------ #
    find $partNbPath -exec chmod 755 {} \;
    if ( /bin/sh $REMOVE_FILE $partNbPath )
    then
        find $partNbPath -exec chmod 555 {} \;
        chmod 755 $partNbPath
        echo "0 $drawPath $drawName$REL_SUFF" > $RETURN_FILE
        exit 0
    else
        find $partNbPath -exec chmod 555 {} \;
        chmod 755 $partNbPath
        (eval "echo $ErrRemoveDrawing" ) > $RETURN_FILE
        exit 1
    fi

else

    desPath=$HOME$DESIGNS_PATH

    # ------------------------------------------------------------------------ #
    # Exists designer area ?
    # ------------------------------------------------------------------------ #
    if ( test ! -d $desPath )
    then
        (eval "echo $DesAreaNotExists") > $RETURN_FILE
        exit 1
    fi

    # ------------------------------------------------------------------------ #
    # Exists drawing (from) ?
    # ------------------------------------------------------------------------ #
    drawPath=$desPath"/"$drawName$DES_SUFF
    if ( test ! -d $drawPath )
    then
        (eval "echo $DrawingNotExists" ) > $RETURN_FILE
        exit 1
    fi
    if ( test ! -r $drawPath  || test ! -w $drawPath )
    then
        (eval "echo $DrawingNoAccess" ) > $RETURN_FILE
        exit 1
    fi

    # ------------------------------------------------------------------------ #
    # Remove drawing directory
    # ------------------------------------------------------------------------ #
    cd $desPath
    if ( `rm -rf $drawPath/*` ) # removes open files first (for hp,rw)
    then
        :
    fi
    if ( `rm -rf $drawPath` )
    then
        echo "0 $drawPath $drawName$REL_SUFF" > $RETURN_FILE
        exit 0
    else
        (eval "echo $ErrRemoveDrawing" ) > $RETURN_FILE
        exit 1
    fi

fi


