#! /bin/sh
## Creates gino functions by querying ginsh
# Copyright (C) 2002 by Peter J. Gawthrop

prefix="g_"			# Prefix function names by this
subdir=${prefix}funs		# Where the generated functions live
ginsh="/usr/bin/ginsh"		# Location of ginsh

create_fun() {
    funname=${prefix}$1
    filename=${funname}.m

    ## Creates an octave function
    echo Creating ${subdir}/${filename}

    ## Find usage string

    usage=`echo "?$1" | ginsh | head -1`

    ## The octave function
    cat<<EOF > ${subdir}/${filename}
function res = ${funname} (arg1,arg2,arg3)

  ## usage:  res = ${prefix}${usage}

  ## Generated by create_gino.sh on `date`
  ## DO NOT EDIT ME

  if nargin<1
    arg1 = "";
  endif

  if nargin<2
    arg2 = "";
  endif

  if nargin<3
    arg3 = "";
  endif

  res = gino("$1", arg1, arg2, arg3);

endfunction
EOF
}

create_readme() {
    cat > ${subdir}/README <<EOF
These files were generated automatically by create_gino.sh
on `date`.

DO NOT EDIT THEM
EOF
}

## Find available ops
ops=`echo "??" | ginsh | gawk '{if(i++==1) {gsub(",",""); print $0}}'`

## Does ginsh exist?
if [ -x "${ginsh}" ]; then
    echo $ginsh exists - ok
else
    echo $ginsh does not exist, exiting
    exit
fi

## Create the corresponding octave funs.
mkdir -p ${subdir}
create_readme;
for op in ${ops}; do
    create_fun ${op}
done

