Don't hardcode the system and target for the derivation history page
This commit is contained in:
parent
6f34d12c4c
commit
ffcf937c6a
2 changed files with 95 additions and 45 deletions
|
|
@ -24,6 +24,7 @@
|
||||||
#:use-module (guix-data-service web util)
|
#:use-module (guix-data-service web util)
|
||||||
#:use-module (guix-data-service model utils)
|
#:use-module (guix-data-service model utils)
|
||||||
#:use-module (guix-data-service model build-server)
|
#:use-module (guix-data-service model build-server)
|
||||||
|
#:use-module (guix-data-service model derivation)
|
||||||
#:use-module (guix-data-service model package)
|
#:use-module (guix-data-service model package)
|
||||||
#:use-module (guix-data-service model git-branch)
|
#:use-module (guix-data-service model git-branch)
|
||||||
#:use-module (guix-data-service model git-repository)
|
#:use-module (guix-data-service model git-repository)
|
||||||
|
|
@ -114,7 +115,8 @@
|
||||||
package-name
|
package-name
|
||||||
package-versions))))))
|
package-versions))))))
|
||||||
(('GET "repository" repository-id "branch" branch-name "package" package-name "derivation-history")
|
(('GET "repository" repository-id "branch" branch-name "package" package-name "derivation-history")
|
||||||
(render-branch-package-derivation-history mime-types
|
(render-branch-package-derivation-history request
|
||||||
|
mime-types
|
||||||
conn
|
conn
|
||||||
repository-id
|
repository-id
|
||||||
branch-name
|
branch-name
|
||||||
|
|
@ -229,17 +231,38 @@
|
||||||
commit-hash))))
|
commit-hash))))
|
||||||
(_ #f)))
|
(_ #f)))
|
||||||
|
|
||||||
(define (render-branch-package-derivation-history mime-types
|
(define (parse-build-system conn)
|
||||||
|
(let ((systems
|
||||||
|
(valid-systems conn)))
|
||||||
|
(lambda (s)
|
||||||
|
(if (member s systems)
|
||||||
|
s
|
||||||
|
(make-invalid-query-parameter
|
||||||
|
s "unknown system")))))
|
||||||
|
|
||||||
|
(define (render-branch-package-derivation-history request
|
||||||
|
mime-types
|
||||||
conn
|
conn
|
||||||
repository-id
|
repository-id
|
||||||
branch-name
|
branch-name
|
||||||
package-name)
|
package-name)
|
||||||
(let ((package-derivations
|
(let ((parsed-query-parameters
|
||||||
|
(parse-query-parameters
|
||||||
|
request
|
||||||
|
`((system ,(parse-build-system conn)
|
||||||
|
#:default "x86_64-linux")
|
||||||
|
(target ,(parse-build-system conn)
|
||||||
|
#:default "x86_64-linux")))))
|
||||||
|
(let* ((system
|
||||||
|
(assq-ref parsed-query-parameters 'system))
|
||||||
|
(target
|
||||||
|
(assq-ref parsed-query-parameters 'target))
|
||||||
|
(package-derivations
|
||||||
(package-derivations-for-branch conn
|
(package-derivations-for-branch conn
|
||||||
(string->number repository-id)
|
(string->number repository-id)
|
||||||
branch-name
|
branch-name
|
||||||
"x86_64-linux"
|
system
|
||||||
"x86_64-linux"
|
target
|
||||||
package-name))
|
package-name))
|
||||||
(build-server-urls
|
(build-server-urls
|
||||||
(group-to-alist
|
(group-to-alist
|
||||||
|
|
@ -271,8 +294,10 @@
|
||||||
(else
|
(else
|
||||||
(render-html
|
(render-html
|
||||||
#:sxml (view-branch-package-derivations
|
#:sxml (view-branch-package-derivations
|
||||||
|
parsed-query-parameters
|
||||||
repository-id
|
repository-id
|
||||||
branch-name
|
branch-name
|
||||||
package-name
|
package-name
|
||||||
|
(valid-systems conn)
|
||||||
build-server-urls
|
build-server-urls
|
||||||
package-derivations))))))
|
package-derivations)))))))
|
||||||
|
|
|
||||||
|
|
@ -290,9 +290,11 @@
|
||||||
(rationalize width 1)))))))))))
|
(rationalize width 1)))))))))))
|
||||||
versions-by-revision-range))))))))))
|
versions-by-revision-range))))))))))
|
||||||
|
|
||||||
(define (view-branch-package-derivations git-repository-id
|
(define (view-branch-package-derivations query-parameters
|
||||||
|
git-repository-id
|
||||||
branch-name
|
branch-name
|
||||||
package-name
|
package-name
|
||||||
|
valid-systems
|
||||||
build-server-urls
|
build-server-urls
|
||||||
derivations-by-revision-range)
|
derivations-by-revision-range)
|
||||||
(define versions-list
|
(define versions-list
|
||||||
|
|
@ -334,6 +336,29 @@
|
||||||
"View JSON")
|
"View JSON")
|
||||||
(h1 (@ (style "white-space: nowrap;"))
|
(h1 (@ (style "white-space: nowrap;"))
|
||||||
(samp ,package-name))))
|
(samp ,package-name))))
|
||||||
|
(div
|
||||||
|
(@ (class "col-md-12"))
|
||||||
|
(div
|
||||||
|
(@ (class "well"))
|
||||||
|
(form
|
||||||
|
(@ (method "get")
|
||||||
|
(action "")
|
||||||
|
(class "form-horizontal"))
|
||||||
|
,(form-horizontal-control
|
||||||
|
"System" query-parameters
|
||||||
|
#:options valid-systems
|
||||||
|
#:allow-selecting-multiple-options #f
|
||||||
|
#:help-text "Show derivations with this system.")
|
||||||
|
,(form-horizontal-control
|
||||||
|
"Target" query-parameters
|
||||||
|
#:options valid-systems
|
||||||
|
#:allow-selecting-multiple-options #f
|
||||||
|
#:help-text "Show derivations with this target.")
|
||||||
|
(div (@ (class "form-group form-group-lg"))
|
||||||
|
(div (@ (class "col-sm-offset-2 col-sm-10"))
|
||||||
|
(button (@ (type "submit")
|
||||||
|
(class "btn btn-lg btn-primary"))
|
||||||
|
"Update results"))))))
|
||||||
(div
|
(div
|
||||||
(@ (class "row"))
|
(@ (class "row"))
|
||||||
(div
|
(div
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue