file-systems: Spawn a Bournish REPL upon fsck failure.

Fixes <http://bugs.gnu.org/22588>.
Reported by Mark H Weaver <mhw@netris.org>.

* gnu/build/file-systems.scm (check-file-system): Pass
%BOURNISH-LANGUAGE as the argument to 'start-repl'.
* gnu/services.scm (activation-script): Add (guix build bournish).
* gnu/services/base.scm (file-system-shepherd-service)[imported-modules]:
Likewise.
* gnu/system/linux-container.scm (container-script): Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
master
Ludovic Courtès 2016-02-08 23:29:06 +01:00
parent f2e4805b7e
commit 6eb439070a
5 changed files with 8 additions and 2 deletions

View File

@ -18,6 +18,7 @@
(define-module (gnu build file-systems)
#:use-module (guix build utils)
#:use-module (guix build bournish)
#:use-module (rnrs io ports)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
@ -352,9 +353,10 @@ the following:
(sleep 3)
(reboot))
(code
(format (current-error-port) "'~a' exited with code ~a on ~a; spawning REPL~%"
(format (current-error-port) "'~a' exited with code ~a on ~a; \
spawning Bourne-like REPL~%"
fsck code device)
(start-repl)))))
(start-repl %bournish-language)))))
(define (mount-flags->bit-mask flags)
"Return the number suitable for the 'flags' argument of 'mount' that

View File

@ -326,6 +326,7 @@ ACTIVATION-SCRIPT-TYPE."
(gnu build file-systems)
(guix build utils)
(guix build syscalls)
(guix build bournish)
(guix elf)))
(define (service-activations)

View File

@ -271,6 +271,7 @@ FILE-SYSTEM."
#:select (check-file-system canonicalize-device-spec))
,@%default-modules))
(imported-modules `((gnu build file-systems)
(guix build bournish)
,@%default-imported-modules))))
'())))

View File

@ -110,5 +110,6 @@ that will be shared with the host system."
(guix utils)
(guix build utils)
(guix build syscalls)
(guix build bournish)
(gnu build file-systems)
(gnu build linux-container))))))

View File

@ -104,6 +104,7 @@
(guix records)
(guix build utils)
(guix build syscalls)
(guix build bournish)
(guix build store-copy)))
(guile-for-build
(%guile-for-build))