summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-02-08 23:29:06 +0100
committerLudovic Courtès <ludo@gnu.org>2016-02-08 23:46:46 +0100
commit6eb439070a12e62e72c13f189ad71394226e6036 (patch)
tree4738bc8fe41dcac47c90d024e28fdcee67f07e7f
parentf2e4805b7e80e31cc23b22a9f082b74d0547fc5f (diff)
downloadguix-6eb439070a12e62e72c13f189ad71394226e6036.tar.gz
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.
-rw-r--r--gnu/build/file-systems.scm6
-rw-r--r--gnu/services.scm1
-rw-r--r--gnu/services/base.scm1
-rw-r--r--gnu/system/linux-container.scm1
-rw-r--r--gnu/system/vm.scm1
5 files changed, 8 insertions, 2 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index f8b8697b46..58ccf599d6 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -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
diff --git a/gnu/services.scm b/gnu/services.scm
index 1ad573787f..ffba418e88 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -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)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 28ccfe0f37..6160e79f30 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -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))))
         '())))
 
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 4f38c5cb0a..c558f45769 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -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))))))
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 3cba400a57..a7c03bda17 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -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))