From: zimoun <zimon.toutoune@gmail.com>
To: 39547@debbugs.gnu.org
Cc: zimoun <zimon.toutoune@gmail.com>
Subject: [bug#39547] [PATCH v2 2/2] website: Provide JSON sources list used by Software Heritage.
Date: Tue, 18 Feb 2020 13:32:46 +0100 [thread overview]
Message-ID: <20200218123246.32473-2-zimon.toutoune@gmail.com> (raw)
In-Reply-To: <20200218123246.32473-1-zimon.toutoune@gmail.com>
Format discussed here <https://forge.softwareheritage.org/D2025#51269>.
* website/apps/packages/builder.scm (origin->json): Add list modifier.
* website/apps/packages/builder.scm (sources-json-builder): New procedure.
---
website/apps/packages/builder.scm | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/website/apps/packages/builder.scm b/website/apps/packages/builder.scm
index d3a777e..49721f6 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))))
@@ -88,7 +89,7 @@
;; Maximum number of packages shown on /packages.
30)
-(define (origin->json origin)
+(define (origin->json origin transformer)
(define method
(origin-method origin))
@@ -105,7 +106,7 @@
((eq? svn-fetch method) 'svn)
(else #nil)))
,@(cond ((eq? url-fetch method)
- `(("url" . ,(list->vector
+ `(("url" . ,(transformer
(resolve
(match uri
((? string? url) (list url))
@@ -136,7 +137,7 @@
,@(if cpe-name `(("cpe_name" . ,cpe-name)) '())
,@(if cpe-version `(("cpe_version" . ,cpe-version)) '())
,@(if (origin? (package-source package))
- `(("source" . ,(origin->json (package-source package))))
+ `(("source" . ,(origin->json (package-source package) list->vector)))
'())
("synopsis" . ,(package-synopsis package))
,@(if (package-home-page package)
@@ -155,6 +156,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) car)
+ `(("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)
--
2.25.0
next prev parent reply other threads:[~2020-02-18 12:34 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-10 17:04 [bug#39547] [PATCH] website: Provide JSON sources list used by Software Heritage zimoun
2020-02-14 8:40 ` Ludovic Courtès
2020-02-14 9:04 ` zimoun
2020-02-14 10:20 ` Ludovic Courtès
2020-02-17 17:59 ` zimoun
2020-02-18 8:24 ` Ludovic Courtès
2020-02-18 8:38 ` zimoun
2020-02-18 8:43 ` Ludovic Courtès
2020-02-18 12:32 ` [bug#39547] [PATCH v2 1/2] website: Refactor and resolve mirror:// of JSON package list zimoun
2020-02-18 12:32 ` zimoun [this message]
2020-03-02 17:24 ` [bug#39547] [PATCH v3] sources.json: array instead of list zimoun
2020-03-06 11:01 ` Ludovic Courtès
2020-03-07 22:17 ` zimoun
2020-03-09 9:53 ` bug#39547: " Ludovic Courtès
2020-03-03 18:00 ` [bug#39547] Addition of %content-addressed-mirrors to sources.json (SWH)? zimoun
2020-03-05 16:19 ` Ludovic Courtès
2020-03-06 9:26 ` zimoun
2020-03-06 10:57 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200218123246.32473-2-zimon.toutoune@gmail.com \
--to=zimon.toutoune@gmail.com \
--cc=39547@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.