guix-commits
[Top][All Lists]
Advanced

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

04/06: import: github: Gracefully handle multiple-URL origins.


From: Ludovic Courtès
Subject: 04/06: import: github: Gracefully handle multiple-URL origins.
Date: Sat, 28 Oct 2017 03:46:11 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 90297811a9d6412fcf57bd6bef08ded39ac895cc
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 27 14:38:45 2017 -0700

    import: github: Gracefully handle multiple-URL origins.
    
    * guix/import/github.scm (latest-release)[origin-github-uri]: New
    procedure.  Use it.
---
 guix/import/github.scm | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/guix/import/github.scm b/guix/import/github.scm
index b249b39..4b7d53c 100644
--- a/guix/import/github.scm
+++ b/guix/import/github.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Ben Woodcroft <address@hidden>
+;;; Copyright © 2017 Ludovic Courtès <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,6 +20,7 @@
 (define-module (guix import github)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (json)
   #:use-module (guix utils)
@@ -182,7 +184,14 @@ https://github.com/settings/tokens";))
 
 (define (latest-release pkg)
   "Return an <upstream-source> for the latest release of PKG."
-  (let* ((source-uri (origin-uri (package-source pkg)))
+  (define (origin-github-uri origin)
+    (match (origin-uri origin)
+      ((? string? url)
+       url)                                       ;surely a github.com URL
+      ((urls ...)
+       (find (cut string-contains <> "github.com") urls))))
+
+  (let* ((source-uri (origin-github-uri (package-source pkg)))
          (name (package-name pkg))
          (newest-version (latest-released-version source-uri name)))
     (if newest-version



reply via email to

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