#!/bin/sh

# Copyright (C) 2002, 2003, 2004, 2007, 2008 Thien-Thi Nguyen
# Copyright (C) 2001 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.

# Usage: See `help' func below.
#
# TODO
# - handle pre-install invocation
# - "full" option processing (but see comment below)
#
# Author: Thien-Thi Nguyen

help ()
{
    cat <<EOF
Usage: guile-tools [--source | --probe] PROGRAM
       guile-tools [PROGRAM [ARGS ...]]

First invocation form:
 -p, --probe   -- If PROGRAM exists, display its full path and exit
                  successfully.  Otherwise, simply exit failurefully.
     --source  -- Display PROGRAM source (ignore ARGS) to stdout.

Second invocation form:  If PROGRAM is "list" or omitted,
display contents of scripts dir.  Otherwise, run PROGRAM ARGS...  

Note that some PROGRAMs may also take --help or --version.

Scripts dir: $scriptsdir
EOF
}

prefix="@prefix@"
exec_prefix="@exec_prefix@"
pkglibdir="@libdir@/@PACKAGE@"
guileversion="@GUILE_VERSION@"
scriptsdir="$pkglibdir/$guileversion/scripts"

case x"$1" in
x--version)
    echo `basename $0` "(Guile)" $guileversion
    exit 0
    ;;
x--help)
    help
    exit 0
    ;;
esac

if [ ! -d $scriptsdir ] ; then
    echo $0: no such directory: $scriptsdir
    exit 1
fi

if [ x"$1" = x -o x"$1" = xlist ] ; then
    ls $scriptsdir
    exit 0
fi

case "$1" in (-p | --probe)
    maybe="$scriptsdir/$2"
    test -f "$maybe" && test -x "$maybe" && echo "$maybe" && exit 0
    exit 1 ;;
esac

if [ x"$1" = x--source ] ; then
    if [ x"$2" = x ] ; then echo $0: need to specify program ; exit 1 ; fi
    if [ -x $scriptsdir/$2 ] ; then
        cat $scriptsdir/$2
        exit 0
    else
        echo $0: no such program: $2
        exit 1
    fi
fi

program=$scriptsdir/$1
shift

if [ -x $program ] ; then
    exec $program "$@"
else
    echo $0: no such program: $program
    exit 1
fi

# guile-tools ends here
