diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-09-01 16:20:36 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-09-04 13:02:27 +0200 |
commit | 2791870d09afd247a011bc8cb6cf88661729bd98 (patch) | |
tree | d069abca3e7c28fcd47bad911fb5d399476833c7 /guix/build-system | |
parent | a85a74ce6c9ff36ccd6ef50216ba8515723f3a62 (diff) | |
download | gnu-guix-2791870d09afd247a011bc8cb6cf88661729bd98.tar gnu-guix-2791870d09afd247a011bc8cb6cf88661729bd98.tar.gz |
import: crate: Separate crates.io API from actual conversion.
This provides a clean separation between bindings to the
https://crates.io/api/v1 API and actual conversion to Guix package
sexps.
As a side-effect, it fixes things like "guix import blake2-rfc", "guix
refresh -t crates", etc.
* guix/import/crate.scm (<crate>, <crate-version>, <crate-dependency>):
New record types.
(lookup-crate, crate-version-dependencies): New procedures.
(crate-fetch): Remove.
(crate->guix-package): Rewrite to use the new API.
(latest-release): Likewise.
* guix/build-system/cargo.scm (%crate-base-url): New variable.
* tests/crate.scm (test-crate): Update accordingly.
fixlet
Diffstat (limited to 'guix/build-system')
-rw-r--r-- | guix/build-system/cargo.scm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm index 10a1bac844..1e8b3a578e 100644 --- a/guix/build-system/cargo.scm +++ b/guix/build-system/cargo.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2016 David Craven <david@craven.ch> @@ -35,12 +35,17 @@ #:export (%cargo-build-system-modules %cargo-utils-modules cargo-build-system + %crate-base-url crate-url crate-url? crate-uri)) -(define crate-url "https://crates.io/api/v1/crates/") -(define crate-url? (cut string-prefix? crate-url <>)) +(define %crate-base-url + (make-parameter "https://crates.io")) +(define crate-url + (string-append (%crate-base-url) "/api/v1/crates/")) +(define crate-url? + (cut string-prefix? crate-url <>)) (define (crate-uri name version) "Return a URI string for the crate package hosted at crates.io corresponding |