diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2019-08-27 22:03:11 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2019-08-27 22:11:09 +0200 |
| commit | dc026ba5865e949b10af64b1e5cd446a71334a26 (patch) | |
| tree | 9c332525d979ccc7a80632394e6c8bbf9b0becdb /website/apps/packages/builder.scm | |
| parent | website: packages.json: Add "cpe_name" and "cpe_version". (diff) | |
| download | guix-artwork-dc026ba5865e949b10af64b1e5cd446a71334a26.tar.gz | |
website: packages.json: Add "source".
* website/apps/packages/builder.scm (packages-json-builder)[origin->json]:
New procedure.
[package->json]: Use it.
Diffstat (limited to 'website/apps/packages/builder.scm')
| -rw-r--r-- | website/apps/packages/builder.scm | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/website/apps/packages/builder.scm b/website/apps/packages/builder.scm index cf296b0..f1bb52b 100644 --- a/website/apps/packages/builder.scm +++ b/website/apps/packages/builder.scm @@ -38,7 +38,11 @@ #:use-module (haunt utils) #:use-module (srfi srfi-1) #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix svn-download) #:use-module (json) + #:use-module (ice-9 match) #:export (builder)) @@ -81,6 +85,31 @@ (define (packages-json-builder) "Return a JSON page listing all packages." + (define (origin->json origin) + (define method + (origin-method origin)) + + `((type . ,(cond ((eq? url-fetch method) 'url) + ((eq? git-fetch method) 'git) + ((eq? svn-fetch method) 'svn) + (else #nil))) + ,@(cond ((eq? url-fetch method) + `(("url" . ,(match (origin-uri origin) + ((? string? url) (vector url)) + ((urls ...) (list->vector urls)))))) + ((eq? git-fetch method) + `(("git_url" . ,(git-reference-url (origin-uri origin))))) + ((eq? svn-fetch method) + `(("svn_url" . ,(svn-reference-url (origin-uri origin))))) + (else '())) + ,@(if (eq? method git-fetch) + `(("git_ref" . ,(git-reference-commit (origin-uri origin)))) + '()) + ,@(if (eq? method svn-fetch) + `(("svn_revision" . ,(svn-reference-revision + (origin-uri origin)))) + '()))) + (define (package->json package) (define cpe-name (assoc-ref (package-properties package) 'cpe-name)) @@ -91,11 +120,14 @@ ("version" . ,(package-version package)) ,@(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)))) + '()) ("synopsis" . ,(package-synopsis package)) ("homepage" . ,(package-home-page package)))) (make-page "packages.json" - (list->vector (map package->json (all-packages))) + (list->vector (map package->json (all-packages))) (lambda args (apply scm->json (append args '(#:pretty #t)))))) |
