aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-10-31 19:53:16 +0000
committerChristopher Baines <mail@cbaines.net>2023-10-31 19:53:16 +0000
commitba9e20ee751669a916fb6886ca98a67f361df0f1 (patch)
treeafb29b8b85902896cd764ba8ff936db99a66179a
parent074b856b01202c74a86846278adf1a7bbcc41cb9 (diff)
downloadqa-frontpage-ba9e20ee751669a916fb6886ca98a67f361df0f1.tar
qa-frontpage-ba9e20ee751669a916fb6886ca98a67f361df0f1.tar.gz
Add a simple package page
-rw-r--r--Makefile.am2
-rw-r--r--guix-qa-frontpage/package.scm21
-rw-r--r--guix-qa-frontpage/server.scm13
-rw-r--r--guix-qa-frontpage/view/package.scm20
4 files changed, 56 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 0bdf182..81b68fc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -33,6 +33,7 @@ SOURCES = \
guix-qa-frontpage/database.scm \
guix-qa-frontpage/patchwork.scm \
guix-qa-frontpage/guix-data-service.scm \
+ guix-qa-frontpage/package.scm \
guix-qa-frontpage/branch.scm \
guix-qa-frontpage/issue.scm \
guix-qa-frontpage/mumi.scm \
@@ -44,6 +45,7 @@ SOURCES = \
guix-qa-frontpage/git-repository.scm \
guix-qa-frontpage/view/util.scm \
guix-qa-frontpage/view/home.scm \
+ guix-qa-frontpage/view/package.scm \
guix-qa-frontpage/view/branches.scm \
guix-qa-frontpage/view/patches.scm \
guix-qa-frontpage/view/branch.scm \
diff --git a/guix-qa-frontpage/package.scm b/guix-qa-frontpage/package.scm
new file mode 100644
index 0000000..9638ac4
--- /dev/null
+++ b/guix-qa-frontpage/package.scm
@@ -0,0 +1,21 @@
+(define-module (guix-qa-frontpage package)
+ #:use-module (srfi srfi-1)
+ #:use-module (guix-qa-frontpage guix-data-service)
+ #:export (package-data))
+
+(define (package-data name)
+ (let* ((revision (get-latest-processed-branch-revision "master"))
+ (package-versions
+ (vector->list
+ (assoc-ref
+ (guix-data-service-request
+ (string-append
+ "https://data.qa.guix.gnu.org/revision/" revision
+ "/package/" name ".json"))
+ "versions")))
+ (data
+ (guix-data-service-request
+ (string-append
+ "https://data.qa.guix.gnu.org/revision/" revision
+ "/package/" name "/" (last package-versions) ".json"))))
+ (peek data)))
diff --git a/guix-qa-frontpage/server.scm b/guix-qa-frontpage/server.scm
index 1216ed6..9677aea 100644
--- a/guix-qa-frontpage/server.scm
+++ b/guix-qa-frontpage/server.scm
@@ -51,6 +51,7 @@
#:use-module (guix-qa-frontpage mumi)
#:use-module (guix-qa-frontpage debbugs)
#:use-module (guix-qa-frontpage branch)
+ #:use-module (guix-qa-frontpage package)
#:use-module (guix-qa-frontpage issue)
#:use-module (guix-qa-frontpage git-repository)
#:use-module (guix-qa-frontpage manage-builds)
@@ -60,6 +61,7 @@
#:use-module (guix-qa-frontpage view home)
#:use-module (guix-qa-frontpage view patches)
#:use-module (guix-qa-frontpage view branches)
+ #:use-module (guix-qa-frontpage view package)
#:use-module (guix-qa-frontpage view branch)
#:use-module (guix-qa-frontpage view issue)
#:use-module (guix-qa-frontpage view reproducible-builds)
@@ -725,6 +727,17 @@ has no patches or has been closed.")
(reproducible-builds-view package-reproducibility
issue-data))))
+ (('GET "package" name)
+ (let ((package-data
+ (with-sqlite-cache
+ database
+ 'package-data
+ package-data
+ #:ttl 3000
+ #:args (list name))))
+ (render-html
+ #:sxml (package-view package-data))))
+
(('GET "README")
(let ((filename (string-append doc-dir "/README.html")))
(if (file-exists? filename)
diff --git a/guix-qa-frontpage/view/package.scm b/guix-qa-frontpage/view/package.scm
new file mode 100644
index 0000000..01d4744
--- /dev/null
+++ b/guix-qa-frontpage/view/package.scm
@@ -0,0 +1,20 @@
+(define-module (guix-qa-frontpage view package)
+ #:use-module (guix-qa-frontpage view util)
+ #:export (package-view))
+
+(define (package-view package-data)
+ (define name (assoc-ref package-data "name"))
+
+ (layout
+ #:title (string-append "Package: " name)
+ #:body
+ `((main
+ (dt "Synopsis")
+ (dd (raw ,(assoc-ref (assoc-ref package-data "synopsis") "html")))
+ (dt "Description")
+ (dd (raw ,(assoc-ref (assoc-ref package-data "description") "html")))
+ (dt "Home page")
+ (dd (a (@ (href ,(assoc-ref package-data "home-page")))
+ ,(assoc-ref package-data "home-page")))
+
+ (h1 "TODO More information to come")))))