mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
services: Add `hurd-getty-service-type'.
* gnu/services/hurd.scm (<hurd-gettty-configuration>): New record. (hurd-ttys-shepherd-service): New procedure. (hurd-getty-service-type): New variable. * doc/guix.texi (Hurd Services): Document it.
This commit is contained in:
parent
f9c04580bf
commit
7ccd471c71
2 changed files with 74 additions and 1 deletions
|
@ -26059,6 +26059,29 @@ The Hurd package to use.
|
|||
@end table
|
||||
@end deftp
|
||||
|
||||
@defvr {Scheme Variable} hurd-getty-service-type
|
||||
This service starts a tty using the Hurd @code{getty} program.
|
||||
|
||||
The service's value is a @code{hurd-getty-configuration} record.
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} hurd-getty-configuration
|
||||
This is the data type representing the configuration for the
|
||||
hurd-getty-service.
|
||||
|
||||
@table @asis
|
||||
@item @code{hurd} (default: @var{hurd})
|
||||
The Hurd package to use.
|
||||
|
||||
@item @code{tty}
|
||||
The name of the console this Getty runs on---e.g., @code{"tty1"}.
|
||||
|
||||
@item @code{baud-rate} (default: @code{38400})
|
||||
An integer specifying the baud rate of the tty.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@node Miscellaneous Services
|
||||
@subsection Miscellaneous Services
|
||||
|
||||
|
|
|
@ -25,7 +25,9 @@ (define-module (gnu services hurd)
|
|||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:export (hurd-console-configuration
|
||||
hurd-console-service-type))
|
||||
hurd-console-service-type
|
||||
hurd-getty-configuration
|
||||
hurd-getty-service-type))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -70,4 +72,52 @@ (define hurd-console-service-type
|
|||
hurd-console-shepherd-service)))
|
||||
(default-value (hurd-console-configuration))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; The Hurd getty service.
|
||||
;;;
|
||||
|
||||
(define-record-type* <hurd-getty-configuration>
|
||||
hurd-getty-configuration make-hurd-getty-configuration
|
||||
hurd-getty-configuration?
|
||||
(hurd hurd-getty-configuration-hurd ;<package>
|
||||
(default hurd))
|
||||
(tty hurd-getty-configuration-tty) ;string
|
||||
(baud-rate hurd-getty-configuration-baud-rate
|
||||
(default 38400))) ;integer
|
||||
|
||||
(define (hurd-getty-shepherd-service config)
|
||||
"Return a <shepherd-service> for a Hurd getty with CONFIG."
|
||||
|
||||
(let ((hurd (hurd-getty-configuration-hurd config))
|
||||
(tty (hurd-getty-configuration-tty config))
|
||||
(baud-rate (hurd-getty-configuration-baud-rate config)))
|
||||
|
||||
(define getty-command
|
||||
#~(list
|
||||
(string-append #$hurd "/libexec/getty")
|
||||
#$(number->string baud-rate)
|
||||
#$tty))
|
||||
|
||||
(list
|
||||
(shepherd-service
|
||||
(documentation "Run getty on a tty.")
|
||||
(provision (list (string->symbol (string-append "term-" tty))))
|
||||
(requirement '(user-processes console))
|
||||
(start #~(make-forkexec-constructor #$getty-command))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define hurd-getty-service-type
|
||||
(service-type
|
||||
(name 'getty)
|
||||
(extensions (list (service-extension shepherd-root-service-type
|
||||
hurd-getty-shepherd-service)))
|
||||
(description
|
||||
"Provide console login using the Hurd @command{getty} program.")))
|
||||
|
||||
(define* (hurd-getty-service config)
|
||||
"Return a service to run the Hurd getty according to @var{config}, which
|
||||
specifies the tty to run, among other things."
|
||||
(service hurd-getty-service-type config))
|
||||
|
||||
;;; hurd.scm ends here
|
||||
|
|
Loading…
Reference in a new issue