mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
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
1 changed files with 15 additions and 10 deletions
|
@ -516,12 +516,14 @@ (define (copy-conf-file conf)
|
|||
(for-each delete-file (find-files db-dir "\\.conf$"))
|
||||
success)))
|
||||
|
||||
;; Don't depend on GHC when there's nothing to do.
|
||||
(and (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)))
|
||||
(with-monad %store-monad
|
||||
;; Don't depend on GHC when there's nothing to do.
|
||||
(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)
|
||||
(return #f))))
|
||||
|
||||
(define (ca-certificate-bundle manifest)
|
||||
"Return a derivation that builds a single-file bundle containing the CA
|
||||
|
@ -602,11 +604,14 @@ (define* (profile-derivation manifest
|
|||
(mlet %store-monad ((extras (if (null? (manifest-entries manifest))
|
||||
(return '())
|
||||
(sequence %store-monad
|
||||
(filter-map (lambda (hook)
|
||||
(hook manifest))
|
||||
hooks)))))
|
||||
(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 a new issue