*** empty log message ***
[bpt/guile.git] / guile-tools.in
CommitLineData
7e1cd073
TTN
1#!/bin/sh
2
3# Copyright (C) 2001 Free Software Foundation, Inc.
4#
5# This program is free software; you can redistribute it and/or
6# modify it under the terms of the GNU General Public License as
7# published by the Free Software Foundation; either version 2, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this software; see the file COPYING. If not, write to
17# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18# Boston, MA 02111-1307 USA
19
de057fdc 20# Usage: See `help' func below.
7e1cd073
TTN
21#
22# TODO
23# - handle pre-install invocation
24# - "full" option processing (but see comment below)
25#
26# Author: Thien-Thi Nguyen
27
de057fdc
TTN
28help ()
29{
30 cat <<EOF
31Usage: guile-tools --version
32 guile-tools --help
33 guile-tools [OPTION] PROGRAM [ARGS]
34
35If PROGRAM is "list" or omitted, display contents of scripts dir, otherwise
36PROGRAM is run w/ ARGS. Options (only one of which may be used at a time):
37 --scriptsdir DIR -- Look in DIR for scripts
38 --guileversion VERS -- Look in $pkgdatadir/VERS/scripts for scripts
d902b02a 39 --source -- Display PROGRAM source (ignore ARGS) to stdout
de057fdc
TTN
40
41Default scripts dir: $default_scriptsdir
42EOF
43}
44
7e1cd073
TTN
45prefix="@prefix@"
46pkgdatadir="@datadir@/@PACKAGE@"
47guileversion="@GUILE_VERSION@"
48default_scriptsdir=$pkgdatadir/$guileversion/scripts
49
50# pre-install invocation frob
51mydir=`dirname $0`
52if [ -d "$mydir/scripts" -a -f "$mydir/scripts/Makefile.am" ] ; then
53 default_scriptsdir=`(cd $mydir/scripts ; pwd)`
54fi
55
7e1cd073
TTN
56# option processing -- basically, you can override either the script dir
57# completely, or just the guile version. we choose implementation simplicity
58# over orthogonality.
59
de057fdc
TTN
60case x"$1" in
61x--version)
7e1cd073
TTN
62 echo $0 $guileversion
63 exit 0
de057fdc
TTN
64 ;;
65x--help)
7e1cd073
TTN
66 help
67 exit 0
de057fdc
TTN
68 ;;
69esac
7e1cd073
TTN
70
71if [ x"$1" = x--scriptsdir ] ; then
72 user_scriptsdir=$2
73 shift
74 shift
75elif [ x"$1" = x--guileversion ] ; then
76 user_scriptsdir=$pkgdatadir/$2/scripts
77 shift
78 shift
79fi
80
81scriptsdir=${user_scriptsdir-$default_scriptsdir}
82
83if [ ! -d $scriptsdir ] ; then
84 echo $0: no such directory: $scriptsdir
85 exit 1
86fi
87
de057fdc
TTN
88if [ x"$1" = x -o x"$1" = xlist ] ; then
89 ls $scriptsdir
90 exit 0
7e1cd073
TTN
91fi
92
d902b02a
TTN
93if [ x"$1" = x--source ] ; then
94 if [ x"$2" = x ] ; then echo $0: need to specify program ; exit 1 ; fi
95 if [ -x $scriptsdir/$2 ] ; then
96 cat $scriptsdir/$2
97 exit 0
98 else
99 echo $0: no such program: $2
100 exit 1
101 fi
102fi
103
7e1cd073
TTN
104program=$scriptsdir/$1
105shift
106
107if [ -x $program ] ; then
108 exec $program "$@"
109else
110 echo $0: no such program: $program
111 exit 1
112fi
113
114# guile-tools ends here