guix-commits
[Top][All Lists]
Advanced

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

02/02: website: Provide JSON sources list used by Software Heritage.


From: Ludovic Courtès
Subject: 02/02: website: Provide JSON sources list used by Software Heritage.
Date: Mon, 9 Mar 2020 05:50:40 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix-artwork.

commit 3915713936424c58138f2aba6cef0b70126fd03e
Author: zimoun <address@hidden>
AuthorDate: Tue Feb 18 13:25:14 2020 +0100

    website: Provide JSON sources list used by Software Heritage.
    
    Format discussed here <https://forge.softwareheritage.org/D2025#51269>.
    
    * website/apps/packages/builder.scm (origin->json): Add list modifier.
    (sources-json-builder): New procedure.
    (builder): Call it.
    
    Signed-off-by: Ludovic Courtès <address@hidden>
---
 website/apps/packages/builder.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/website/apps/packages/builder.scm 
b/website/apps/packages/builder.scm
index 8ce9ac9..85494a6 100644
--- a/website/apps/packages/builder.scm
+++ b/website/apps/packages/builder.scm
@@ -74,6 +74,7 @@
   (flatten
    (list
     (index-builder)
+    (sources-json-builder)
     (packages-json-builder)
     (packages-builder)
     (package-list-builder))))
@@ -156,6 +157,21 @@
             (list->vector (map package->json (all-packages)))
              scm->json))
 
+(define (sources-json-builder)
+  "Return a JSON page listing all the sources.
+
+See <https://forge.softwareheritage.org/D2025#51269>."
+  (define (package->json package)
+    `(,@(if (origin? (package-source package))
+            (origin->json (package-source package))
+            `(("type" . "no-origin")
+              ("name" . ,(package-name package))))))
+
+  (make-page "sources.json"
+             `(("sources" . ,(list->vector (map package->json (all-packages))))
+               ("version" . "1"))
+             scm->json))
+
 (define (index-builder)
   "Return a Haunt page listing some random packages."
   (define (sample n from)



reply via email to

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