diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-07-24 22:27:35 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-07-24 23:02:26 +0200 |
commit | 0a90af153199b03deced53da7ef7f50f0e561f80 (patch) | |
tree | 38c39490e95c2f2efc61ef9ab74de1bffd35e851 /doc | |
parent | 7ab44369b34a23e5d22ac51b7fbfe31c0de9fbfd (diff) | |
download | patches-0a90af153199b03deced53da7ef7f50f0e561f80.tar patches-0a90af153199b03deced53da7ef7f50f0e561f80.tar.gz |
monads: Add 'interned-file'.
* guix/monads.scm (interned-file): New procedure.
* tests/monads.scm ("interned-file"): New test.
* doc/guix.texi (The Store Monad): Document it.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/guix.texi | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 2f44ce9506..c504a5d0ba 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2012,6 +2012,29 @@ will references @var{coreutils}, @var{grep}, and @var{sed}, thereby preventing them from being garbage-collected during its lifetime. @end deffn +@deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @ + [#:recursive? #t] +Return the name of @var{file} once interned in the store. Use +@var{name} as its store name, or the basename of @var{file} if +@var{name} is omitted. + +When @var{recursive?} is true, the contents of @var{file} are added +recursively; if @var{file} designates a flat file and @var{recursive?} +is true, its contents are added, and its permission bits are kept. + +The example below adds a file to the store, under two different names: + +@example +(run-with-store (open-connection) + (mlet %store-monad ((a (interned-file "README")) + (b (interned-file "README" "LEGU-MIN"))) + (return (list a b)))) + +@result{} ("/gnu/store/rwm@dots{}-README" "/gnu/store/44i@dots{}-LEGU-MIN") +@end example + +@end deffn + @deffn {Monadic Procedure} package-file @var{package} [@var{file}] @ [#:system (%current-system)] [#:output "out"] Return as a monadic value in the absolute file name of @var{file} within the @var{output} |