unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* updating guile-tools: no more --scriptsdir
@ 2008-07-16  9:58 Thien-Thi Nguyen
  2008-07-16 13:21 ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Thien-Thi Nguyen @ 2008-07-16  9:58 UTC (permalink / raw)
  To: guile-devel

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

Greetings,

Please find below a patch, first in a short series, to update the guile-tools
script.  I figure this is the best way to start harmonizing Guile 1.4.x and
official Guile.  Please let me know if you would prefer it in some other
format.

thi

___________________________________________________

[-- Attachment #2: 0001-Remove-support-for-guile-tools-scriptsdir.patch --]
[-- Type: text/x-diff, Size: 2079 bytes --]

From 7006105990993e39e8a248d1203eebc0be42ef1c Mon Sep 17 00:00:00 2001
From: Thien-Thi Nguyen <ttn@gnuvola.org>
Date: Wed, 16 Jul 2008 11:50:28 +0200
Subject: [PATCH] Remove support for "guile-tools --scriptsdir".

* guile-tools.in: Delete "--scriptsdir" handling.
(help): Update.

Signed-off-by: Thien-Thi Nguyen <ttn@gnuvola.org>
---
 ChangeLog      |    7 +++++++
 guile-tools.in |   11 +----------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index da26cbf..0b58be4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-07-16  Thien-Thi Nguyen  <ttn@gnuvola.org>
+
+	Remove support for "guile-tools --scriptsdir".
+
+	* guile-tools.in: Delete "--scriptsdir" handling.
+	(help): Update.
+
 2008-07-06  Ludovic Courtès  <ludo@gnu.org>
 
 	* configure.in: Update to Autoconf 2.61.
diff --git a/guile-tools.in b/guile-tools.in
index a4db08f..50444f0 100644
--- a/guile-tools.in
+++ b/guile-tools.in
@@ -34,7 +34,6 @@ Usage: guile-tools --version
 
 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
 
@@ -53,10 +52,6 @@ if [ -d "$mydir/scripts" -a -f "$mydir/scripts/Makefile.am" ] ; then
     default_scriptsdir=`(cd $mydir/scripts ; pwd)`
 fi
 
-# option processing -- basically, you can override either the script dir
-# completely, or just the guile version.  we choose implementation simplicity
-# over orthogonality.
-
 case x"$1" in
 x--version)
     echo $0 $guileversion
@@ -68,11 +63,7 @@ x--help)
     ;;
 esac
 
-if [ x"$1" = x--scriptsdir ] ; then
-    user_scriptsdir=$2
-    shift
-    shift
-elif [ x"$1" = x--guileversion ] ; then
+if [ x"$1" = x--guileversion ] ; then
     user_scriptsdir=$pkgdatadir/$2/scripts
     shift
     shift
-- 
1.5.3.5


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: updating guile-tools: no more --scriptsdir
  2008-07-16  9:58 updating guile-tools: no more --scriptsdir Thien-Thi Nguyen
@ 2008-07-16 13:21 ` Ludovic Courtès
  2008-07-16 19:45   ` Thien-Thi Nguyen
  0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2008-07-16 13:21 UTC (permalink / raw)
  To: guile-devel

Hello,

Thien-Thi Nguyen <ttn@gnuvola.org> writes:

> Please find below a patch, first in a short series, to update the guile-tools
> script.

I've never actually used that option, but can you provide rationale for
removing it?  I'd rather not remove it without a good reason to do so.

> I figure this is the best way to start harmonizing Guile 1.4.x and
> official Guile.

Eh, that's good news!  :-)

Thanks,
Ludovic.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: updating guile-tools: no more --scriptsdir
  2008-07-16 13:21 ` Ludovic Courtès
@ 2008-07-16 19:45   ` Thien-Thi Nguyen
  2008-07-18 10:04     ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Thien-Thi Nguyen @ 2008-07-16 19:45 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

[-- Attachment #1: Type: text/plain, Size: 1679 bytes --]

() ludo@gnu.org (Ludovic Courtès)
() Wed, 16 Jul 2008 15:21:48 +0200

   I've never actually used that option, but can you provide
   rationale for removing it?  I'd rather not remove it without a
   good reason to do so.

It's not useful (you said it yourself).  I bet that if we were to
omit the removal of this misfeature from NEWS, no one would even
notice.  (Same goes for --guileversion and --help-all, which are
next up on the chopping block.)

For a preview of where i imagine official Guile's guile-tools
should go (not far), please find attached the Guile 1.4.1.118
variant.  In terms of (re-)design rationale, the idea is to move
away from gratuitous variability:

 [It was (sort of) nice that guile-tools could be used to mux
  (dispatch) other functionality, but that sort of flexibility is
  available by more standard means (e.g., set PATH env var).]

and towards reliable reflection:

 [Many programs dispatched by guile-tools useful for maintaining
  packages (config/build/install) have an invocation context of
  either the configure script (produced by autoconf) or a makefile
  (possibly, but not always, produced by automake).  So, it's a
  good idea to mesh well w/ the autoconf spirit of probing
  features (instead of simply version numbers).]

I hope this explains the thought behind the 1.4.1.118 guile-tools,
which is the basis for this set of proposed (and to be proposed)
changes.

You can see the 1.4.1.118 guile-tools in action in Guile-PG's
configure.in (unreleased, see <http://www.gnuvola.org/wip/>),
lines 51 and 52, for example.

thi

________________________________________________________________

[-- Attachment #2: guile-tools.in --]
[-- Type: application/octet-stream, Size: 2576 bytes --]

#!/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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: updating guile-tools: no more --scriptsdir
  2008-07-16 19:45   ` Thien-Thi Nguyen
@ 2008-07-18 10:04     ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2008-07-18 10:04 UTC (permalink / raw)
  To: guile-devel

Hello,

Thien-Thi Nguyen <ttn@gnuvola.org> writes:

> () ludo@gnu.org (Ludovic Courtès)
> () Wed, 16 Jul 2008 15:21:48 +0200
>
>    I've never actually used that option, but can you provide
>    rationale for removing it?  I'd rather not remove it without a
>    good reason to do so.
>
> It's not useful (you said it yourself).

I didn't say that.  I suppose it can be useful in some situations, I
just never needed it myself.

One reason for this is that I rarely invoke `guile-tools' directly, but
rather through Autoconf macros or similar, as you noted.  Another reason
is that a large part of the scripts `guile-tools' run is undocumented
and unmaintained.

> I bet that if we were to omit the removal of this misfeature from
> NEWS, no one would even notice.  (Same goes for --guileversion and
> --help-all, which are next up on the chopping block.)

Maybe, but let's not try that.  ;-)

>  [It was (sort of) nice that guile-tools could be used to mux
>   (dispatch) other functionality, but that sort of flexibility is
>   available by more standard means (e.g., set PATH env var).]

Is it another way of saying the scripts could go into $bindir?  Why not,
but that would mean cleaning up and documenting the scripts, removing
deprecated ones, and possibly prepending `guile-' to their names.

Thanks,
Ludovic.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-07-18 10:04 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-16  9:58 updating guile-tools: no more --scriptsdir Thien-Thi Nguyen
2008-07-16 13:21 ` Ludovic Courtès
2008-07-16 19:45   ` Thien-Thi Nguyen
2008-07-18 10:04     ` Ludovic Courtès

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).