mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-01 23:05:57 +02: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:
committed by
Jan Nieuwenhuizen
parent
f9c04580bf
commit
7ccd471c71
+51
-1
@@ -25,7 +25,9 @@
|
||||
#: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 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user