import: utils: Add some utilities.
* guix/import/utils.scm (maybe-inputs, maybe-native-inputs, package->definition): New variables.
This commit is contained in:
parent
4b3cb7f4bc
commit
bb3f36ed4c
|
@ -22,6 +22,7 @@
|
||||||
#:use-module (guix base32)
|
#:use-module (guix base32)
|
||||||
#:use-module ((guix build download) #:prefix build:)
|
#:use-module ((guix build download) #:prefix build:)
|
||||||
#:use-module (guix hash)
|
#:use-module (guix hash)
|
||||||
|
#:use-module (guix http-client)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -36,6 +37,10 @@
|
||||||
url-fetch
|
url-fetch
|
||||||
guix-hash-url
|
guix-hash-url
|
||||||
|
|
||||||
|
maybe-inputs
|
||||||
|
maybe-native-inputs
|
||||||
|
package->definition
|
||||||
|
|
||||||
spdx-string->license
|
spdx-string->license
|
||||||
license->symbol
|
license->symbol
|
||||||
|
|
||||||
|
@ -205,3 +210,32 @@ into a proper sentence and by using two spaces between sentences."
|
||||||
;; Use double spacing between sentences
|
;; Use double spacing between sentences
|
||||||
(regexp-substitute/global #f "\\. \\b"
|
(regexp-substitute/global #f "\\. \\b"
|
||||||
cleaned 'pre ". " 'post)))
|
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))))
|
||||||
|
|
Loading…
Reference in New Issue