Message ID | baf4d200c0d625b69b01f63e3013be670461da65.1726835963.git.dariqq@posteo.net |
---|---|
State | New |
Headers | show |
Series | [bug#73383] home: home-shepherd-configuration: Add silent? field. | expand |
Hi, Dariqq <dariqq@posteo.net> skribis: > * gnu/home/services/shepherd.scm (home-shepherd-configuration): Add silent? field. > (launch-shepherd-gexp): Conditionally invoke shepherd with --silent. > * doc/guix.texi (home-shepherd-configuration): Document it. > > Change-Id: I1ce7a92c2777ebded39fe293b0bdcbd03562b4fc [...] > Related: The daemonize? field is not documented and the accessor is not being > exported. We should fix it. > +@item silent? (default: @code{#f}) > +Whether or not the auto-started Shepherd should output to stdout. Alternatively: “When true, the @command{shepherd} process does not write anything to standard output.” I would go as far as making it #t by default, WDYT? Thanks, Ludo’.
On 25.09.24 17:57, Ludovic Courtès wrote: > Hi, > > Dariqq <dariqq@posteo.net> skribis: > >> * gnu/home/services/shepherd.scm (home-shepherd-configuration): Add silent? field. >> (launch-shepherd-gexp): Conditionally invoke shepherd with --silent. >> * doc/guix.texi (home-shepherd-configuration): Document it. >> >> Change-Id: I1ce7a92c2777ebded39fe293b0bdcbd03562b4fc > > [...] > >> Related: The daemonize? field is not documented and the accessor is not being >> exported. > > We should fix it. > >> +@item silent? (default: @code{#f}) >> +Whether or not the auto-started Shepherd should output to stdout. > > Alternatively: “When true, the @command{shepherd} process does not write > anything to standard output.” That sounds way better. I would also mention that this only does something when autostart? is also #t. > > I would go as far as making it #t by default, WDYT? > Personally I think these messages provide little value when they just inform me that all my home-services have started successfully (especially because this is also available in the log file anyway), so I would have no objection. Not sure how others feel about them. Probably most dont see them at all when they launch directly into their de/wm. > Thanks, > Ludo’.
Hello, Dariqq <dariqq@posteo.net> skribis: > Here is v2: > > Changes: > * Change default-value of the silent? field to #t. > * Update the documentation. I added something that (hopefully) makes it obvious that the field is intended to be used together with the auto-start? field. > * Added a second patch to document the daemonize? field and export the field-accessor. Should it warn about the issue when dameonize? is #f but auto-start? is #t blocking logins? > > Dariqq (2): > home: home-shepherd-configuration: Add silent? field. > doc: Document home-shepherd-configuration-daemonize? Applied, thanks! Ludo’.
diff --git a/doc/guix.texi b/doc/guix.texi index 52e36e4354..ab8cf54ae8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -46057,6 +46057,9 @@ Shepherd Home Service @item auto-start? (default: @code{#t}) Whether or not to start Shepherd on first login. +@item silent? (default: @code{#f}) +Whether or not the auto-started Shepherd should output to stdout. + @item services (default: @code{'()}) A list of @code{<shepherd-service>} to start. You should probably use the service extension diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm index dfe4030a4e..17b005ed71 100644 --- a/gnu/home/services/shepherd.scm +++ b/gnu/home/services/shepherd.scm @@ -32,6 +32,7 @@ (define-module (gnu home services shepherd) home-shepherd-configuration? home-shepherd-configuration-shepherd home-shepherd-configuration-auto-start? + home-shepherd-configuration-silent? home-shepherd-configuration-services) #:re-export (shepherd-service shepherd-service? @@ -58,6 +59,8 @@ (define-record-type* <home-shepherd-configuration> (default #t)) (daemonize? home-shepherd-configuration-daemonize? (default #t)) + (silent? home-shepherd-configuration-silent? + (default #f)) (services home-shepherd-configuration-services (default '()))) @@ -107,7 +110,8 @@ (define (home-shepherd-configuration-file config) (scheme-file "shepherd.conf" config))) (define (launch-shepherd-gexp config) - (let* ((shepherd (home-shepherd-configuration-shepherd config))) + (let* ((shepherd (home-shepherd-configuration-shepherd config)) + (silent? (home-shepherd-configuration-silent? config))) (if (home-shepherd-configuration-auto-start? config) (with-imported-modules '((guix build utils)) #~(unless (file-exists? @@ -125,6 +129,7 @@ (define (launch-shepherd-gexp config) #$(file-append shepherd "/bin/shepherd") "--logfile" (string-append log-dir "/shepherd.log") + #$@(if silent? '("--silent") '()) "--config" #$(home-shepherd-configuration-file config))))) #~"")))