#!/bin/sh

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

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

. $curDir/dm_incl
. $curDir/dm_text

# ---------------------------------------------------------------------------- #
#
# Search for a given string in all *.INF files.
# If project not equal -1 then search only in the given project.
#
# Parameter:
#           input : - project ("-1" / project name)
#                   - search string
#           output: - error code ("0": ok; "1"/"2": error)
#                   - error message or number of found files
#
# 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=2
if test $# -ne $nbParam
then
    (eval "echo $ParameterNotValid") > $RETURN_FILE
    exit 1
fi

# ---------------------------------------------------------------------------- #
# Set parameters to variables
# ---------------------------------------------------------------------------- #
project=$1
searchstr=$2

relPath=$RELEASES_PATH
# ---------------------------------------------------------------------------- #
# Exists release area
# ---------------------------------------------------------------------------- #
if ( test ! -d $relPath )
then
    (eval "echo $RelAreaNotExists") > $RETURN_FILE
    exit 1
fi

# ------------------------------------------------------------------------ #
# Exists project ? (if project not equal -1)
# ------------------------------------------------------------------------ #
if ( test "$project" = "-1" )
then
    searchPath=$relPath
else
    projPath=$relPath"/"$project$PRO_SUFF
    if ( test ! -d $projPath )
    then
        (eval "echo $ProjectNotExists" ) > $RETURN_FILE
        exit 1
    fi
    searchPath=$projPath
fi

# ------------------------------------------------------------------------ #
# Search for string in all *.INF files
# ------------------------------------------------------------------------ #
if [ -w $FIND_FILE ]
then 
    rm $FIND_FILE
fi
touch $FIND_FILE
chmod 777 $FIND_FILE

muster=".*\\/[^/]+\\${PRO_SUFF}\\/[^/]+\\${REL_SUFF}\\/[^/]+\\.INF"

find $searchPath -print | egrep $muster |
( 
  nb=0
  if [ -w $FIND_FILE ]
  then
    rm $FIND_FILE
  fi
  while read x
  do
      if ( `fgrep -l "$searchstr" $x >> $FIND_FILE` )
      then
          nb=`expr $nb + 1`
      fi 
  done
  if [ $nb -eq 0 -a -w $FIND_FILE ]
  then
    rm $FIND_FILE
  fi
)

if [ -r $FIND_FILE ]
then
     nb=`cat $FIND_FILE | wc -l`
     echo "0 $nb"  > $RETURN_FILE
else
     echo "0 0"    > $RETURN_FILE
fi

exit 0

