#!/bin/sh
#
# @(#)plotte_bg	1.8 of 6/30/95
#  
# ruft das Meta2Treiber Programm auf und erstellt eine TreiberDatei.
# ruft das Shell-Script sislpr auf, falls geplottet/gedruckt werden soll.
# ruft das Shell-Script drmeta auf, wenn ein Projektverzeichnis ueber-
# geben wurde. Es werden dann alle gefundenen Meta-Dateien dieses Ver-
# zeichnisses - nach entsprechender Konvertierung (abh. vom Format) - an
# das Ausgabegeraet geschickt; bei fehlender Verzeichnisangabe wird das
# aktuelle Verzeichnis angenommen.
#
# WARNUNG: Ein uebergebenes METADIR bzw. ProjektVerzeichnis wird am Schluss
#          komplett geloescht!
#
# Dieses Shellscript wird von SIS CAD-P unterschiedlich aufgerufen:
#

usage()
{
echo "
usage: $0 MET2NAME METAFILE [PAR2..PARn] MetEnde [PRINTER]
       $0 MET2NAME METADIR  [PAR2..PARn] MetEnde [PRINTER]
       $0 ProjektVerzeichnis
"
}

case $SISLANGUAGE in

DEUTSCH)
TXT_INPROCESS="wird bearbeitet"
TXT_ERRPROC="Fehler beim Bearbeiten der Datei"
TXT_ERRPRINT="Fehler beim Drucken der Datei"
TXT_ERRCREATE="Fehler beim Erstellen der Datei"
;;

ENGLISH)
TXT_INPROCESS="in process"
TXT_ERRPROC="Error processing file"
TXT_ERRPRINT="Error printing file"
TXT_ERRCREATE="Error creating file"
;;
esac

DEBUG=0

if [ ${DEBUG} = 1 ]
then
  echo "$0: Ausgabe der Uebergabeparameter"
  echo "+---------------------------------------------------------+"
  i=0
  for parameter in $*
  do
    i=`expr ${i} + 1`
    echo "Parameter ${i}: >${parameter}<"
  done
  echo "+---------------------------------------------------------+"
  echo ""
fi

if [ $# -lt 2 ]
then
  if [ $# -eq 1 ]
  then
    DRPROJEKT=1
    PAR1=$1
  else
    usage
    exit 2
  fi
else
  DRPROJEKT=0
  MET2NAME="${cadexe}$1"
  MET2EXT=`echo $1 | \
            awk '{
                  if ( index($0,"/met2") != 0 )
                     printf "%s",substr($0,6,length($0))
                 }'`                 ; shift
  PAR1=$1                            ; shift
  PRINTER=""
  METPAR=""
  while [ "$1" ]
  do
    if [ "$1" != MetEnde ]
    then
      METPAR="${METPAR} $1" ; shift
    else
      break
    fi
  done
  shift ; PRINTER=$1
fi

MetaFileListe=$$.lst
if [ -f ${PAR1} ]
then
  echo ${PAR1} > ${MetaFileListe}
else
  if [ -d ${PAR1} ]
  then
    MetaFileListe="/tmp/$$.met2lst"
    ls -c  ${PAR1}/*.mt? ${PAR1}/*.mt 2> /dev/null | sort > ${MetaFileListe}
  else
    echo "$0: Fehlerhafter Parameter ${PAR1}"
    usage
    exit 2
  fi
fi

if [ ${DEBUG} = 1 ]
then
  echo "$0: Auswerten der Uebergabeparameter"
  echo "+---------------------------------------------------------+"
  if [ ${DRPROJEKT} = 0 ]
  then
    echo "MET2NAME      : >${MET2NAME}<"
    echo "METPAR        : >${METPAR}<"
    echo "PRINTER       : >${PRINTER}<"
    echo "MET2EXT       : >${MET2EXT}<"
  fi
  cat ${MetaFileListe} | \
        awk '{
              if ( NR<=1 ) printf "MetaFileListe : >%s<\n",$0
              else         printf "                >%s<\n",$0
             }'
fi

exit_status=0
if [ -s "${MetaFileListe}" ]   # vorhanden und nicht leer
then
  for MetaFileName in `cat "${MetaFileListe}"`
  do
    echo "$0: ${MetaFileName} ${TXT_INPROCESS}"
    if [ ${DRPROJEKT} = 1 ]
    then
      CMD="${cadexe}/drmeta ${MetaFileName}"
      if [ ${DEBUG} = 1 ]
      then
        echo "+.........................................................+"
        echo "Aufruf zum Bearbeiten : ${CMD}"
      fi
      if ${CMD}
      then
        rm -f ${MetaFileName}
      else
        echo "$0: ${TXT_ERRPROC} ${MetaFileName}"
        exit_status=2
      fi
    else
      MET2FileName="`basename ${MetaFileName} |\
                    awk -F\. '{
                               for ( i=1 ; i<NF ; ++i )
                                 printf "%s",$i
                              }'`.${MET2EXT}"
      CMD1="${MET2NAME} ${MetaFileName} ${MET2FileName} ${METPAR}"
      if [ ${DEBUG} = 1 ]
      then
        echo "+.........................................................+"
        echo "MET2FileName  : >${MET2FileName}<"
        echo "Aufruf zum Erstellen : ${CMD1}"
      fi
      if ${CMD1}
      then
        if [ "${PRINTER}" != "" ]
        then
          CMD2="${cadexe}/sislpr ${PRINTER} ${MET2FileName}"
          if [ ${DEBUG} = 1 ]
          then
            echo "Aufruf zum Drucken   : ${CMD2}"
          fi
          if ${CMD2}
          then
            rm -f ${MetaFileName}
          else
            echo "$0: ${TXT_ERRPRINT} ${MET2FileName}"
            exit_status=2
          fi
        fi
      else
        echo "$0: ${TXT_ERRCREATE} ${MET2FileName}"
        exit_status=2
      fi
    fi
  done
fi
rm ${MetaFileListe}
rm -rf ${PAR1}

if [ ${DEBUG} = 1 ]
then
  echo "+---------------------------------------------------------+"
fi

exit ${exit_status}
