diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-10-10 09:57:36 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-10-10 21:40:23 +0200 |
commit | 813bcbc4eaa820821c3fc52e539c5244e192601c (patch) | |
tree | 704c5b66aec533f01a7e5b457a3da30823b62f3f /guix/build/bournish.scm | |
parent | 7c515a43b0f2c6c38ecb59cdb2a4a5bb90e67c2a (diff) |
bournish: Add 'reboot' command.
Suggested by Ricardo Wurmus.
* guix/build/bournish.scm (reboot-command): New procedure.
(%commands): Add it.
Diffstat (limited to 'guix/build/bournish.scm')
-rw-r--r-- | guix/build/bournish.scm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm index 928bef5b9e..51dad17ba7 100644 --- a/guix/build/bournish.scm +++ b/guix/build/bournish.scm @@ -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 |