Message ID | 11414ae2650cde429b82aa168041e3989cf7d84c.1672951913.git.mirai@makinata.eu |
---|---|
State | New |
Headers | show |
Series | [bug#60582,1/2] services: configuration: Format a list of packages by their names. | expand |
Hi, Bruno Victal <mirai@makinata.eu> writes: > * gnu/services/configuration.scm > (generate-documentation): Format a list of packages by their names. > --- > gnu/services/configuration.scm | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm > index 6b0291dc00..16e2380709 100644 > --- a/gnu/services/configuration.scm > +++ b/gnu/services/configuration.scm > @@ -370,6 +370,9 @@ (define (show-default val) > (cond > ((package? val) > (symbol->string (package->symbol val))) > + ((and ((list-of package?) val) (not (null? val))) > + (format #f "(~{~a~^ ~})" > + (map package->symbol val))) The 'and' and (not (null? val)) don't seem to be necessary as in the empty list of packages, it'd produce the same as the else clause below: --8<---------------cut here---------------start------------->8--- scheme@(gnu services configuration)> (format #f "(~{~a~^ ~})" '()) $1 = "()" scheme@(gnu services configuration)> (str '()) $2 = "()" --8<---------------cut here---------------end--------------->8--- > (else (str val)))) > > `(entry (% (heading
On 2023-01-13 20:29, Maxim Cournoyer wrote: > Hi, > > Bruno Victal <mirai@makinata.eu> writes: > >> * gnu/services/configuration.scm >> (generate-documentation): Format a list of packages by their names. >> --- >> gnu/services/configuration.scm | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm >> index 6b0291dc00..16e2380709 100644 >> --- a/gnu/services/configuration.scm >> +++ b/gnu/services/configuration.scm >> @@ -370,6 +370,9 @@ (define (show-default val) >> (cond >> ((package? val) >> (symbol->string (package->symbol val))) >> + ((and ((list-of package?) val) (not (null? val))) >> + (format #f "(~{~a~^ ~})" >> + (map package->symbol val))) > > The 'and' and (not (null? val)) don't seem to be necessary as in the > empty list of packages, it'd produce the same as the else clause below: > > --8<---------------cut here---------------start------------->8--- > scheme@(gnu services configuration)> (format #f "(~{~a~^ ~})" '()) > $1 = "()" > scheme@(gnu services configuration)> (str '()) > $2 = "()" > --8<---------------cut here---------------end--------------->8--- > >> (else (str val)))) >> >> `(entry (% (heading > It is necessary for non file-like fields whose default value is '(). Otherwise configuration->documentation will show blank spaces when it should show an empty list. Cheers, Bruno
diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 6b0291dc00..16e2380709 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -370,6 +370,9 @@ (define (show-default val) (cond ((package? val) (symbol->string (package->symbol val))) + ((and ((list-of package?) val) (not (null? val))) + (format #f "(~{~a~^ ~})" + (map package->symbol val))) (else (str val)))) `(entry (% (heading