summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/ref/tools.texi33
-rw-r--r--module/scripts/README23
2 files changed, 12 insertions, 44 deletions
diff --git a/doc/ref/tools.texi b/doc/ref/tools.texi
index 2f4f59ac9..7a98884d8 100644
--- a/doc/ref/tools.texi
+++ b/doc/ref/tools.texi
@@ -303,14 +303,11 @@ is rather byzantine, so for now @emph{NO} doc snarfing programs are installed.
@cindex executable modules
@cindex scripts
-When Guile is installed, in addition to the @code{(ice-9 FOO)} modules,
-a set of @dfn{executable modules} @code{(scripts BAR)} is also installed.
-Each is a regular Scheme module that has some additional packaging so
-that it can be called as a program in its own right, from the shell. For this
-reason, we sometimes use the term @dfn{script} in this context to mean the
-same thing.
-
-@c wow look at this hole^! variable-width font users eat your heart out.
+When Guile is installed, in addition to the @code{(ice-9 FOO)} modules, a set
+of @dfn{guile-tools modules} @code{(scripts BAR)} is also installed. Each is
+a regular Scheme module that has some additional packaging so that it can be
+used by guile-tools, from the shell. For this reason, we sometimes use the
+term @dfn{script} in this context to mean the same thing.
As a convenience, the @code{guile-tools} wrapper program is installed along w/
@code{guile}; it knows where a particular module is installed and calls it
@@ -346,17 +343,11 @@ executable module. Feel free to skip to the next chapter.
See template file @code{PROGRAM} for a quick start.
-Programs must follow the @dfn{executable module} convention, documented here:
+Programs must follow the @dfn{guile-tools} convention, documented here:
@itemize
@item
-The file name must not end in ".scm".
-
-@item
-The file must be executable (chmod +x).
-
-@item
The module name must be "(scripts PROGRAM)". A procedure named PROGRAM w/
signature "(PROGRAM . args)" must be exported. Basically, use some variant
of the form:
@@ -377,20 +368,10 @@ There must be the alias:
However, `main' must NOT be exported.
-@item
-The beginning of the file must use the following invocation sequence:
-
-@example
-#!/bin/sh
-main='(module-ref (resolve-module '\''(scripts PROGRAM)) '\'main')'
-exec $@{GUILE-guile@} -l $0 -c "(apply $main (cdr (command-line)))" "$@@"
-!#
-@end example
-
@end itemize
Following these conventions allows the program file to be used as module
-@code{(scripts PROGRAM)} in addition to as a standalone executable. Please
+@code{(scripts PROGRAM)} in addition to being invoked by guile-tools. Please
also include a helpful Commentary section w/ some usage info.
@c tools.texi ends here
diff --git a/module/scripts/README b/module/scripts/README
index 56dd286fb..cb397f5d2 100644
--- a/module/scripts/README
+++ b/module/scripts/README
@@ -4,9 +4,9 @@ Overview and Usage
This directory contains Scheme programs, some useful in maintaining Guile.
On "make install", these programs are copied to PKGDATADIR/VERSION/scripts.
-You can invoke a program from the shell, or alternatively, load its file
-as a Guile Scheme module, and use its exported procedure(s) from Scheme code.
-Typically for any PROGRAM:
+You can use guile-tools to invoke a program from the shell, or alternatively,
+load its file as a Guile Scheme module, and use its exported procedure(s)
+from Scheme code. Typically for any PROGRAM:
(use-modules (scripts PROGRAM))
(PROGRAM ARG1 ARG2 ...)
@@ -22,8 +22,6 @@ To see PROGRAM's commentary, which may or may not be helpful:
(help (scripts PROGRAM))
-To see all commentaries and module dependencies, try: "make overview".
-
If you want to try the programs before installing Guile, you will probably
need to set environment variable GUILE_LOAD_PATH to be the parent directory.
This can be done in Bourne-compatible shells like so:
@@ -40,11 +38,7 @@ How to Contribute
See template file PROGRAM for a quick start.
-Programs must follow the "executable module" convention, documented here:
-
-- The file name must not end in ".scm".
-
-- The file must be executable (chmod +x).
+Programs must follow the "guile-tools" convention, documented here:
- The module name must be "(scripts PROGRAM)". A procedure named PROGRAM w/
signature "(PROGRAM . args)" must be exported. Basically, use some variant
@@ -61,15 +55,8 @@ Programs must follow the "executable module" convention, documented here:
However, `main' must NOT be exported.
-- The beginning of the file must use the following invocation sequence:
-
- #!/bin/sh
- main='(module-ref (resolve-module '\''(scripts PROGRAM)) '\'main')'
- exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
- !#
-
Following these conventions allows the program file to be used as module
-(scripts PROGRAM) in addition to as a standalone executable. Please also
+(scripts PROGRAM) in addition to being invoked by guile-tools. Please also
include a helpful Commentary section w/ some usage info.