#! /bin/sh

     ###################################### 
     ##### Model Transformation Tools #####
     ######################################

# Bourne shell script: rep_txt2sh
# Executes shell commands for report.

# P.J.Gawthrop August 1996
# Copyright (c) P.J.Gawthrop, 1996.

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.6  2002/04/28 18:55:03  geraint
## Fixed [ 549658 ] awk should be gawk.
## Replaced calls to awk with call to gawk.
##
## Revision 1.5  2000/11/27 10:13:25  peterg
## Now passes though options as second argument
##
## Revision 1.4  1998/04/14 18:17:15  peterg
## More messages about Makefile
##
## Revision 1.3  1998/04/14 18:01:04  peterg
## Now executes a Makefile (if it exists)
##
# Revision 1.2  1997/12/06  14:27:53  peterg
# No changes.
#
## Revision 1.1  1997/08/26 09:06:11  peterg
## Initial revision
##
###############################################################

# Execute a make if Makefile exists
if [ -f Makefile ]; then
  echo Executing the Makefile
  make    
  echo Done executing the Makefile
  echo
fi

## Get switches (if any)
mtt_switches=$2

# Inform user
echo "Creating representations for $1_rep.tex"

# Check for old (2 arg) version and update if necessary
mtt_count=`strip_comments < $1_rep.txt | grep -c 'mtt '`
if [ "$mtt_count" = "0" ]; then
  echo 'Hmm .. seems to be an old format. creating new file'
  echo "Old version saved as $1_rep.txt.SAVE"
  mv $1_rep.txt $1_rep.txt.SAVE
  strip_comments < $1_rep.txt.SAVE |\
  gawk '{print "mtt", sys, $1, $2}' sys="$1" >$1_rep.txt
fi


# Execute the commands - quietly and untidily!
# But use switches
# | sed "s/mtt /mtt -q -u $mtt_switches /" #| tee -a JUNK  | sh

strip_comments< $1_rep.txt | awk '
{
  ## Add in the external switches
  sub("mtt", sprintf("mtt %s", mtt_switches));
      
  ## Count the switches (noting that -i -dr -dw and -de have an argument)
  ## and make up a string (switches) containing them
  Switches=0; switches = "";
  for (i=2;i<=NF;i++) {
    if (match($i,"-")==1) {
      Switches++;
      switches=sprintf("%s%s", switches, $i);
    }
    if (match($i,"-i")==1) {
      Switches++;
      j=i+1;
      switches=sprintf("%s%s", switches, $j);
    }
    if (match($i,"-dr")==1){
      Switches++;
      j=i+1;
      switches=sprintf("%s%s", switches, $j);
    }
    if (match($i,"-dw")==1){
      Switches++;
      j=i+1;
      switches=sprintf("%s%s", switches, $j);
    }
    if (match($i,"-de")==1){
      Switches++;
      j=i+1;
      switches=sprintf("%s%s", switches, $j);
    }
  }
  System = $(Switches+2)
  Representation = $(Switches+3);
  Multiple = "odes odeso sms smso daes daeso";
  Language = $(Switches+4);

  args = $(Switches+5);
  if ( (length(args)>0)&&(match(Language,"ps")>0)) {
    __Args = sprintf("-%s", gensub(/_/, "-", "g", args) );
  }
  else
  {
  __Args = "";
  }

  ## mtt command
  printf("%s\n", $0);

  ## Add in the main mtt switches
  __Args = sprintf("%s%s", switches, __Args);
 
  ## Zap -q -u
  gsub("-[qu]","", __Args);

  ## Zap blanks
  gsub(" ","", __Args);

  ## copy result to long name file
  SysRepLang = sprintf("%s_%s.%s", System, Representation, Language);
  if (length(__Args)==0)
    __Args = "-noargs";
  SysRepArgLang = sprintf("%s_%s%s.%s", System, Representation, __Args, Language);
  printf("echo Creating %s\n", SysRepArgLang);
  printf("cp %s %s\n", SysRepLang, SysRepArgLang);

}' mtt_switches="${mtt_switches}"  | sh

echo "Done creating representations for $1_rep.tex"




