packages: 'expand-input' accepts any file-like object.
* guix/packages.scm (expand-input)[valid?]: Remove. Call 'file-like?' instead of 'valid?'. Remove 'struct?' clause. * tests/packages.scm ("&package-input-error"): Adjust accordingly.
This commit is contained in:
parent
83bdaf3150
commit
e7477dd59b
2 changed files with 3 additions and 11 deletions
|
@ -1213,13 +1213,10 @@ Return the cached result when available."
|
||||||
(define* (expand-input package input #:key native?)
|
(define* (expand-input package input #:key native?)
|
||||||
"Expand INPUT, an input tuple, to a name/<gexp-input> tuple. PACKAGE is
|
"Expand INPUT, an input tuple, to a name/<gexp-input> tuple. PACKAGE is
|
||||||
only used to provide contextual information in exceptions."
|
only used to provide contextual information in exceptions."
|
||||||
(define (valid? x)
|
|
||||||
(or (package? x) (origin? x) (derivation? x)))
|
|
||||||
|
|
||||||
(match input
|
(match input
|
||||||
(((? string? name) (? valid? thing))
|
(((? string? name) (? file-like? thing))
|
||||||
(list name (gexp-input thing #:native? native?)))
|
(list name (gexp-input thing #:native? native?)))
|
||||||
(((? string? name) (? valid? thing) (? string? output))
|
(((? string? name) (? file-like? thing) (? string? output))
|
||||||
(list name (gexp-input thing output #:native? native?)))
|
(list name (gexp-input thing output #:native? native?)))
|
||||||
(((? string? name)
|
(((? string? name)
|
||||||
(and (? string?) (? file-exists? file)))
|
(and (? string?) (? file-exists? file)))
|
||||||
|
@ -1228,11 +1225,6 @@ only used to provide contextual information in exceptions."
|
||||||
;; source.
|
;; source.
|
||||||
(list name (gexp-input (local-file file #:recursive? #t)
|
(list name (gexp-input (local-file file #:recursive? #t)
|
||||||
#:native? native?)))
|
#:native? native?)))
|
||||||
(((? string? name) (? struct? source))
|
|
||||||
;; 'package-source-derivation' calls 'lower-object', which can throw
|
|
||||||
;; '&gexp-input-error'. However '&gexp-input-error' lacks source
|
|
||||||
;; location info, so we used to catch and rethrow here (FIXME!).
|
|
||||||
(list name (gexp-input source)))
|
|
||||||
(x
|
(x
|
||||||
(raise (condition (&package-input-error
|
(raise (condition (&package-input-error
|
||||||
(package package)
|
(package package)
|
||||||
|
|
|
@ -744,7 +744,7 @@
|
||||||
|
|
||||||
(let ((dummy (dummy-package "foo" (inputs `(("x" ,(current-module)))))))
|
(let ((dummy (dummy-package "foo" (inputs `(("x" ,(current-module)))))))
|
||||||
(test-equal "&package-input-error"
|
(test-equal "&package-input-error"
|
||||||
(list dummy (current-module))
|
(list dummy `("x" ,(current-module)))
|
||||||
(guard (c ((package-input-error? c)
|
(guard (c ((package-input-error? c)
|
||||||
(list (package-error-package c)
|
(list (package-error-package c)
|
||||||
(package-error-invalid-input c))))
|
(package-error-invalid-input c))))
|
||||||
|
|
Reference in a new issue