[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/01: website: Provide JSON package list.
From: |
Ricardo Wurmus |
Subject: |
01/01: website: Provide JSON package list. |
Date: |
Wed, 21 Aug 2019 18:20:04 -0400 (EDT) |
rekado pushed a commit to branch master
in repository guix-artwork.
commit 9c6f714305460e99c681d9b7f368e13bfe49fdd9
Author: nixo <address@hidden>
Date: Mon Aug 12 16:42:08 2019 +0200
website: Provide JSON package list.
* website/apps/packages/builder.scm (package-json-builder): New
procedure.
(builder): Use it.
Co-authored-by: Ricardo Wurmus <address@hidden>
Signed-off-by: Ricardo Wurmus <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 40a54f9..00e177c 100644
--- a/website/apps/packages/builder.scm
+++ b/website/apps/packages/builder.scm
@@ -1,6 +1,7 @@
;;; GNU Guix web site
;;; Copyright © 2017 Ludovic Courtès <address@hidden>
;;; Copyright © 2019 Ricardo Wurmus <address@hidden>
+;;; Copyright © 2019 Nicolò Balzarotti <address@hidden>
;;;
;;; Initially written by sirgazil
;;; who waives all copyright interest on this file.
@@ -36,6 +37,8 @@
#:use-module (haunt page)
#:use-module (haunt utils)
#:use-module (srfi srfi-1)
+ #:use-module (guix packages)
+ #:use-module (json)
#:export (builder))
@@ -62,6 +65,7 @@
(flatten
(list
(index-builder)
+ (packages-json-builder)
(packages-builder)
(package-list-builder))))
@@ -75,6 +79,18 @@
;; Maximum number of packages shown on /packages.
30)
+(define (packages-json-builder)
+ "Return a JSON page listing all packages."
+ (define (package->json package)
+ `(("name" . ,(package-name package))
+ ("version" . ,(package-version package))
+ ("synopsis" . ,(package-synopsis package))
+ ("homepage" . ,(package-home-page package))))
+ (make-page "packages.json"
+ (list->vector (map package->json (all-packages)))
+ (lambda args
+ (apply scm->json (append args '(#:pretty #t))))))
+
(define (index-builder)
"Return a Haunt page listing some random packages."
(define (sample n from)