Cyril Roelandt <[email protected]> skribis:
> * guix/packages.scm (package-direct-inputs): New procedure.
> * tests/packages.scm: Test it.
> * guix/ui.scm (package->recutils): Print the dependencies of the package.
[...]
> --- a/guix/ui.scm
> +++ b/guix/ui.scm
> @@ -456,6 +456,14 @@ WIDTH columns."
> ;; Note: Don't i18n field names so that people can post-process it.
> (format port "name: ~a~%" (package-name p))
> (format port "version: ~a~%" (package-version p))
> + (format port "depends: ~a~%"
> + (string-join
> + (map car
> + (sort (package-direct-inputs p)
> + (lambda (p1 p2)
> + (string<? (package-full-name (cadr p1))
> + (package-full-name (cadr p2))))))
> + ", "))
‘car’, ‘cadr’ & friends are frowned upon here.
Could you:
1. make a local helper procedure:
(define (package<? p1 p2)
(string<? (package-full-name p1) ...))
2. use ‘match’:
(match (package-direct-inputs p)
(((labels packages . _) ...)
(string-join (sort packages package<?) ", ")))
Otherwise looks good.
Thanks!
Ludo’.