#!/bin/csh -f

if ($#argv < 4) then
  set foo = "$0"
  echo "Usage: $foo:t parent-world child-world locale file1.oa ..."
  exit 1
endif

if (! $?OAKPATH) setenv OAKPATH /usr/misc/.oaklisp

set parent = $1
set child  = $2
set locale = $3
set oafiles = ($argv[4-])

set del = 0

if (-e $child) then
  mv -f $child $child~~
  set del = 1
endif

set switches = (-d -b -G)
if ($?OAKFLIW) then
  set switches = ($OAKFLIW $switches) 
endif
if ($?OAKLISP) then
  set switches = ($OAKLISP $switches) 
endif

set q = '"'
set tfile = /tmp/f$$.oak

echo ";;; Temporary world augmentation file." > $tfile
foreach f ($oafiles)
  echo "(load" $q$f$q $locale")" >> $tfile
end
echo "(exit)" >> $tfile
echo ";;; eof." >> $tfile

echo "(load" $q$tfile$q")" | $OAKPATH/etc/emulator $switches -f $child $parent

set estatus = $status

if ($estatus != 0) then
  echo "Oaklisp terminated with status $estatus."
  rm -f $child
  if ($del == 1) mv -f $child~~ $child
  exit $estatus
endif

if ($del == 1) rm -f $child~~

rm -f $tfile
echo dumped
