guix-comm...@gnu.org skribis: > commit d7a217e67dcd3b14402d746f4428db8545ce83f2 > Author: Jan (janneke) Nieuwenhuizen <jann...@gnu.org> > AuthorDate: Mon Apr 13 10:13:05 2020 +0200 > > services: Add hurd-console-service-type. > > * gnu/services/hurd.scm (<hurd-console-configuration>): New variable. > (hurd-console-shepherd-service, hurd-console-service-type): New function. > (hurd-service->shepherd-service): Add entry.
Now for the exciting stuff, neat! > - #:export (hurd-service->shepherd-service)) > + #:export (hurd-console-service-type > + hurd-service->shepherd-service)) > > ;;; Commentary: > ;;; > @@ -38,9 +39,51 @@ > (define (hurd-service->shepherd-service service) > (let ((config (service-value service))) > (match config > + (($ <hurd-console-configuration>) (hurd-console-shepherd-service > config)) > (_ '())))) Hmm do we really need this ‘hurd-service->shepherd-service’ procedure? I haven’t read the rest, but it seems surprising at first sight. > + (list (shepherd-service > + (documentation "Hurd console.") “Run the Hurd’s VGA console client.” > + (provision '(console)) > + (requirement '()) Should be '(user-processes) I think. > + (start #~(lambda _ (fork+exec-command #$console-command) #t)) Rather #~(make-forkexec-constructor #$console-command). > +(define hurd-console-service-type > + (service-type > + (name 'console) > + (description > + "Run a hurd console, @command{console}.") Maybe “Run the Hurd console client.” > + (compose concatenate) > + (extend first-of-two) I don’t think we need these two fields since this service is not meant to be extensible. > + (default-value (hurd-console-configuration)))) Please add a ‘description’ too! Also, normally we document every new service type in the manual, but maybe we can delay it here so that you can unleash your hack powers in the meantime. :-) Thanks, Ludo’.