import/utils: alist->package: Include properties.

* guix/import/utils.scm (alist->package): Process properties field in input
data and include it in the generated package.
* tests/import-utils.scm ("alist->package with properties"): New test.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
itd 2022-09-23 09:42:53 +02:00 committed by Ludovic Courtès
parent 168a7933c0
commit 61bd7bf469
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 29 additions and 0 deletions

View File

@ -444,10 +444,20 @@ specifications to look up and replace them with plain symbols instead."
((key . value)
(list (symbol->keyword (string->symbol key)) value)))
arguments))
(define (process-properties properties)
(map (match-lambda
((key . value)
(cons (string->symbol key) value)))
properties))
(package
(name (assoc-ref meta "name"))
(version (assoc-ref meta "version"))
(source (source-spec->object (assoc-ref meta "source")))
(properties
(or (and=> (assoc-ref meta "properties")
process-properties)
'()))
(build-system
(lookup-build-system-by-name
(string->symbol (assoc-ref meta "build-system"))))

View File

@ -203,4 +203,23 @@
("license" . #f))))
(package-native-inputs (alist->package meta))))
(test-assert "alist->package with properties"
(let* ((meta '(("name" . "hello")
("version" . "2.10")
("source" .
;; Use a 'file://' URI so that we don't cause a download.
,(string-append "file://"
(search-path %load-path "guix.scm")))
("build-system" . "gnu")
("properties" . (("hidden?" . #t)
("upstream-name" . "hello-upstream")))
("home-page" . "https://gnu.org")
("synopsis" . "Say hi")
("description" . "This package says hi.")
("license" . "GPL-3.0+")))
(pkg (alist->package meta)))
(and (package? pkg)
(equal? (package-upstream-name pkg) "hello-upstream")
(hidden-package? pkg))))
(test-end "import-utils")