diff options
| author | nixo <nicolo@nixo.xyz> | 2019-08-12 16:42:08 +0200 |
|---|---|---|
| committer | Ricardo Wurmus <rekado@elephly.net> | 2019-08-22 00:19:41 +0200 |
| commit | 9c6f714305460e99c681d9b7f368e13bfe49fdd9 (patch) | |
| tree | bec80a1f56b6dc6067c26c068c16eeb3910e9a60 | |
| parent | website: Remove handling of GUIX_WEB_SITE_INFO. (diff) | |
| download | guix-artwork-9c6f714305460e99c681d9b7f368e13bfe49fdd9.tar.gz | |
website: Provide JSON package list.
* website/apps/packages/builder.scm (package-json-builder): New
procedure.
(builder): Use it.
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
| -rw-r--r-- | website/apps/packages/builder.scm | 16 |
1 files changed, 16 insertions, 0 deletions
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 <ludo@gnu.org> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2019 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; 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) |
