bournish: Add 'reboot' command.

Suggested by Ricardo Wurmus.

* guix/build/bournish.scm (reboot-command): New procedure.
(%commands): Add it.
This commit is contained in:
Ludovic Courtès 2016-10-10 09:57:36 +02:00
parent 7c515a43b0
commit 813bcbc4ea
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 13 additions and 1 deletions

View File

@ -162,6 +162,17 @@ characters."
(else
`((@@ (guix build bournish) wc-command-implementation) ,@args))))
(define (reboot-command . args)
"Emit code for 'reboot'."
;; Normally Bournish is used in the initrd, where 'reboot' is provided
;; directly by (guile-user). In other cases, just bail out.
`(if (defined? 'reboot)
(reboot)
(begin
(format (current-error-port)
"I don't know how to reboot, sorry about that!~%")
#f)))
(define (help-command . _)
(display "\
Hello, this is Bournish, a minimal Bourne-like shell in Guile!
@ -189,7 +200,8 @@ commands such as 'ls' and 'cd'; it lacks globbing, pipes---everything.\n"))
("ls" ,ls-command)
("which" ,which-command)
("cat" ,cat-command)
("wc" ,wc-command)))
("wc" ,wc-command)
("reboot" ,reboot-command)))
(define (read-bournish port env)
"Read a Bournish expression from PORT, and return the corresponding Scheme