summaryrefslogtreecommitdiff
path: root/guix/swh.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-03-04 23:16:17 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-03-04 23:16:17 +0100
commitebb7cf9e21060105d9950dd5142c0eb918083666 (patch)
tree36c1607b80d92e27fb9d09029d1d3b57a1fd5065 /guix/swh.scm
parent0b870f7915f5da43758753fd088a22033936dc50 (diff)
parentc2d7e800e6788277bc56f31d5836f9d507dc1506 (diff)
downloadguix-patches-ebb7cf9e21060105d9950dd5142c0eb918083666.tar
guix-patches-ebb7cf9e21060105d9950dd5142c0eb918083666.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'guix/swh.scm')
-rw-r--r--guix/swh.scm12
1 files changed, 10 insertions, 2 deletions
diff --git a/guix/swh.scm b/guix/swh.scm
index 8bdf9965f6..ec744fed2f 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -126,9 +127,16 @@
(make-parameter "https://archive.softwareheritage.org"))
(define (swh-url path . rest)
+ ;; URLs returned by the API may be relative or absolute. This has changed
+ ;; without notice before. Handle both cases by detecting whether the path
+ ;; starts with a domain.
+ (define root
+ (if (string-prefix? "/" path)
+ (string-append (%swh-base-url) path)
+ path))
+
(define url
- (string-append (%swh-base-url) path
- (string-join rest "/" 'prefix)))
+ (string-append root (string-join rest "/" 'prefix)))
;; Ensure there's a trailing slash or we get a redirect.
(if (string-suffix? "/" url)