aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/license.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/model/license.scm')
-rw-r--r--guix-data-service/model/license.scm36
1 files changed, 21 insertions, 15 deletions
diff --git a/guix-data-service/model/license.scm b/guix-data-service/model/license.scm
index ebca0eb..f16634d 100644
--- a/guix-data-service/model/license.scm
+++ b/guix-data-service/model/license.scm
@@ -17,10 +17,12 @@
(define-module (guix-data-service model license)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-43)
#:use-module (ice-9 vlist)
#:use-module (ice-9 match)
#:use-module (squee)
#:use-module (guix inferior)
+ #:use-module (guix-data-service database)
#:use-module (guix-data-service model utils)
#:export (inferior-packages->license-id-lists
inferior-packages->license-data))
@@ -49,7 +51,7 @@
(current-error-port)
"error: unknown license value ~A for package ~A"
x package)
- '()))
+ #f))
values))
(x
(simple-format
@@ -69,17 +71,21 @@
;; save non string values as NULL
NULL))
- (insert-missing-data-and-return-all-ids
- conn
- "licenses"
- `(name uri comment)
- (map (lambda (license-tuples)
- (map
- (match-lambda
- ((name uri comment)
- (list name
- (string-or-null uri)
- (string-or-null comment))))
- license-tuples))
- license-data)
- #:sets-of-data? #t))
+ (vector-map
+ (lambda (_ license-tuples)
+ (if (null? license-tuples)
+ #()
+ (insert-missing-data-and-return-all-ids
+ conn
+ "licenses"
+ `(name uri comment)
+ (list->vector
+ (filter-map
+ (match-lambda
+ ((name uri comment)
+ (list name
+ (string-or-null uri)
+ (string-or-null comment)))
+ (#f #f))
+ license-tuples)))))
+ license-data))