guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/07: import: utils: Add some utilities.


From: David Craven
Subject: 02/07: import: utils: Add some utilities.
Date: Wed, 14 Dec 2016 15:31:12 +0000 (UTC)

dvc pushed a commit to branch master
in repository guix.

commit bb3f36ed4ca83f01eb422f9de9c404d53218b382
Author: David Craven <address@hidden>
Date:   Sat Dec 10 18:43:39 2016 +0100

    import: utils: Add some utilities.
    
    * guix/import/utils.scm (maybe-inputs, maybe-native-inputs,
      package->definition): New variables.
---
 guix/import/utils.scm |   34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 057c2d9..f304da2 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -22,6 +22,7 @@
   #:use-module (guix base32)
   #:use-module ((guix build download) #:prefix build:)
   #:use-module (guix hash)
+  #:use-module (guix http-client)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
   #:use-module (ice-9 match)
@@ -36,6 +37,10 @@
             url-fetch
             guix-hash-url
 
+            maybe-inputs
+            maybe-native-inputs
+            package->definition
+
             spdx-string->license
             license->symbol
 
@@ -205,3 +210,32 @@ into a proper sentence and by using two spaces between 
sentences."
     ;; Use double spacing between sentences
     (regexp-substitute/global #f "\\. \\b"
                               cleaned 'pre ".  " 'post)))
+
+(define (package-names->package-inputs names)
+  (map (lambda (input)
+         (list input (list 'unquote (string->symbol input))))
+       names))
+
+(define (maybe-inputs package-names)
+  "Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a
+package definition."
+  (match (package-names->package-inputs package-names)
+    (()
+     '())
+    ((package-inputs ...)
+     `((inputs (,'quasiquote ,package-inputs))))))
+
+(define (maybe-native-inputs package-names)
+  "Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a
+package definition."
+  (match (package-names->package-inputs package-names)
+    (()
+     '())
+    ((package-inputs ...)
+     `((native-inputs (,'quasiquote ,package-inputs))))))
+
+(define (package->definition guix-package)
+  (match guix-package
+    (('package ('name (? string? name)) _ ...)
+     `(define-public ,(string->symbol name)
+        ,guix-package))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]