diff options
Diffstat (limited to 'guix-data-service/model/license.scm')
-rw-r--r-- | guix-data-service/model/license.scm | 36 |
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)) |