diff options
author | itd <itd@net.in.tum.de> | 2022-09-23 09:42:53 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-09-29 22:59:48 +0200 |
commit | 61bd7bf4690329a10e0a1d3fd1425a73d1823576 (patch) | |
tree | 4f4114030b40502938c1da226d055d2e9dcc7ba8 | |
parent | 168a7933c0e138dc7061a3f0dc96871e16da5c5f (diff) | |
download | guix-61bd7bf4690329a10e0a1d3fd1425a73d1823576.tar.gz |
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>
-rw-r--r-- | guix/import/utils.scm | 10 | ||||
-rw-r--r-- | tests/import-utils.scm | 19 |
2 files changed, 29 insertions, 0 deletions
diff --git a/guix/import/utils.scm b/guix/import/utils.scm index dd8c61b79a..977e1d5f95 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -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")))) diff --git a/tests/import-utils.scm b/tests/import-utils.scm index 7c6c782917..c47348fc60 100644 --- a/tests/import-utils.scm +++ b/tests/import-utils.scm @@ -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") |