profiles: Hooks always return a monadic value.
Suggested by 宋文武 <iyzsong@gmail.com>. * guix/profiles.scm (ghc-package-cache-file): Return a monadic #f, not just #f, when MANIFEST contains no GHC package. (profile-derivation): Do not filter based on the return value of HOOK; instead filter based on the value of items in EXTRAS.
This commit is contained in:
parent
41766807d0
commit
07eaecfae1
|
@ -516,12 +516,14 @@ entries of MANIFEST, or #f if MANIFEST does not have any GHC packages."
|
|||
(for-each delete-file (find-files db-dir "\\.conf$"))
|
||||
success)))
|
||||
|
||||
(with-monad %store-monad
|
||||
;; Don't depend on GHC when there's nothing to do.
|
||||
(and (any (cut string-prefix? "ghc" <>)
|
||||
(if (any (cut string-prefix? "ghc" <>)
|
||||
(map manifest-entry-name (manifest-entries manifest)))
|
||||
(gexp->derivation "ghc-package-cache" build
|
||||
#:modules '((guix build utils))
|
||||
#:local-build? #t)))
|
||||
#:local-build? #t)
|
||||
(return #f))))
|
||||
|
||||
(define (ca-certificate-bundle manifest)
|
||||
"Return a derivation that builds a single-file bundle containing the CA
|
||||
|
@ -602,11 +604,14 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
|
|||
(mlet %store-monad ((extras (if (null? (manifest-entries manifest))
|
||||
(return '())
|
||||
(sequence %store-monad
|
||||
(filter-map (lambda (hook)
|
||||
(map (lambda (hook)
|
||||
(hook manifest))
|
||||
hooks)))))
|
||||
(define inputs
|
||||
(append (map gexp-input extras)
|
||||
(append (filter-map (lambda (gexp)
|
||||
(and (gexp? gexp)
|
||||
(gexp-input gexp)))
|
||||
extras)
|
||||
(manifest-inputs manifest)))
|
||||
|
||||
(define builder
|
||||
|
|
Loading…
Reference in New Issue