merge from 1.8 branch
[bpt/guile.git] / guile-tools.in
index 21bcafa..a4db08f 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-#      Copyright (C) 2001 Free Software Foundation, Inc.
+#      Copyright (C) 2001, 2003, 2006 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
 #
 # 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., 59 Temple Place, Suite 330,
-# Boston, MA 02111-1307 USA
+# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301 USA
 
-# Usage: guile-tools --version
-#        guile-tools --help
-#        guile-tools [OPTION] PROGRAM [ARGS]
-#
-# PROGRAM is run w/ ARGS.  To see a list of available programs, use
-# "guile-tools --help" to find the default scripts directory and then
-# do a "ls" on that directory.  Or just read the source 14 lines below.
-#
-# Options (only one of which may be used at a time):
-# --scriptsdir DIR      -- Look in DIR for scripts
-# --guileversion VERS   -- Look in $pkgdatadir/VERS/scripts for scripts
+# Usage: See `help' func below.
 #
 # TODO
 # - handle pre-install invocation
 #
 # Author: Thien-Thi Nguyen
 
+help ()
+{
+    cat <<EOF
+Usage: guile-tools --version
+       guile-tools --help
+       guile-tools [OPTION] PROGRAM [ARGS]
+
+If PROGRAM is "list" or omitted, display contents of scripts dir, otherwise
+PROGRAM is run w/ ARGS.  Options (only one of which may be used at a time):
+ --scriptsdir DIR    -- Look in DIR for scripts
+ --guileversion VERS -- Look in $pkgdatadir/VERS/scripts for scripts
+ --source            -- Display PROGRAM source (ignore ARGS) to stdout
+
+Default scripts dir: $default_scriptsdir
+EOF
+}
+
 prefix="@prefix@"
 pkgdatadir="@datadir@/@PACKAGE@"
-guileversion="@GUILE_VERSION@"
+guileversion="@GUILE_EFFECTIVE_VERSION@"
 default_scriptsdir=$pkgdatadir/$guileversion/scripts
 
 # pre-install invocation frob
@@ -46,25 +53,20 @@ if [ -d "$mydir/scripts" -a -f "$mydir/scripts/Makefile.am" ] ; then
     default_scriptsdir=`(cd $mydir/scripts ; pwd)`
 fi
 
-help ()
-{
-    echo "$0 [--scriptsdir DIR | --guileversion VERSION] PROGRAM [ARGS]"
-    echo default scriptsdir: $default_scriptsdir
-}
-
 # option processing -- basically, you can override either the script dir
 # completely, or just the guile version.  we choose implementation simplicity
 # over orthogonality.
 
-if [ x"$1" = x--version ] ; then
+case x"$1" in
+x--version)
     echo $0 $guileversion
     exit 0
-fi
-
-if [ x"$1" = x--help -o x"$1" = x ] ; then
+    ;;
+x--help)
     help
     exit 0
-fi
+    ;;
+esac
 
 if [ x"$1" = x--scriptsdir ] ; then
     user_scriptsdir=$2
@@ -83,9 +85,20 @@ if [ ! -d $scriptsdir ] ; then
     exit 1
 fi
 
-if [ x"$1" = x ] ; then
-    help
-    exit 1
+if [ x"$1" = x -o x"$1" = xlist ] ; then
+    ls $scriptsdir
+    exit 0
+fi
+
+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