summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-08-29 00:32:31 +0200
committerLudovic Courtès <ludo@gnu.org>2015-08-29 01:22:54 +0200
commit0309e1b0ba9764746fc99c6ee02917c585ea8579 (patch)
tree97b972a38766535063468d8ac04001eac0ac0cb0
parentb6c6105cacf8093bafcdbb73fad591070cfaa8d7 (diff)
downloadguix-0309e1b0ba9764746fc99c6ee02917c585ea8579.tar.gz
gexp: Add #:script-name parameter to 'gexp->derivation'.
* guix/gexp.scm (gexp->derivation): Add #:script-name parameter.
* doc/guix.texi (G-Expressions): Document it.
-rw-r--r--doc/guix.texi8
-rw-r--r--guix/gexp.scm10
2 files changed, 11 insertions, 7 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 2973411beb..f69440c325 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3263,11 +3263,13 @@ information about monads.)
        [#:module-path @var{%load-path}] @
        [#:references-graphs #f] [#:allowed-references #f] @
        [#:leaked-env-vars #f] @
+       [#:script-name (string-append @var{name} "-builder")] @
        [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f]
 Return a derivation @var{name} that runs @var{exp} (a gexp) with
-@var{guile-for-build} (a derivation) on @var{system}.  When @var{target}
-is true, it is used as the cross-compilation target triplet for packages
-referred to by @var{exp}.
+@var{guile-for-build} (a derivation) on @var{system}; @var{exp} is
+stored in a file called @var{script-name}.  When @var{target} is true,
+it is used as the cross-compilation target triplet for packages referred
+to by @var{exp}.
 
 Make @var{modules} available in the evaluation context of @var{exp};
 @var{modules} is a list of names of Guile modules searched in
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 6dc816dc40..63af40aed9 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -331,10 +331,12 @@ names and file names suitable for the #:allowed-references argument to
                            references-graphs
                            allowed-references
                            leaked-env-vars
-                           local-build? (substitutable? #t))
+                           local-build? (substitutable? #t)
+                           (script-name (string-append name "-builder")))
   "Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a
-derivation) on SYSTEM.  When TARGET is true, it is used as the
-cross-compilation target triplet for packages referred to by EXP.
+derivation) on SYSTEM; EXP is stored in a file called SCRIPT-NAME.  When
+TARGET is true, it is used as the cross-compilation target triplet for
+packages referred to by EXP.
 
 Make MODULES available in the evaluation context of EXP; MODULES is a list of
 names of Guile modules searched in MODULE-PATH to be copied in the store,
@@ -397,7 +399,7 @@ The other arguments are as for 'derivation'."
                        (sexp     (gexp->sexp exp
                                              #:system system
                                              #:target target))
-                       (builder  (text-file (string-append name "-builder")
+                       (builder  (text-file script-name
                                             (object->string sexp)))
                        (modules  (if (pair? %modules)
                                      (imported-modules %modules