diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-12-05 20:52:58 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-12-05 20:54:59 +0100 |
commit | 9328eafbf590938d2b7c4b8c6476a8664fa052b7 (patch) | |
tree | 40ed40b44da561e47ea5f1ff3e7ac8d8b5d07039 | |
parent | a79fbd5d1d59a0cbc998a8133177ddcc9b073b94 (diff) | |
download | guix-9328eafbf590938d2b7c4b8c6476a8664fa052b7.tar.gz |
services: file-system: Make sure fsck.* commands are in $PATH.
Fixes a regression introduced in bf7ef1bb848db0977b54ea012789adc68751c68a, whereby the fsck.* commands would not be found. * gnu/services/base.scm (file-system-shepherd-service): Call calls to 'setenv'.
-rw-r--r-- | gnu/services/base.scm | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 2b3d3f8548..ea1ab63d1b 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -269,10 +269,24 @@ FILE-SYSTEM." #$(if create? #~(mkdir-p #$target) #t) - (mount-file-system - `(#$device #$title #$target #$type #$flags #$options - #$check?) #:root "/") - #t)) + + (let (($PATH (getenv "PATH"))) + ;; Make sure fsck.ext2 & co. can be found. + (dynamic-wind + (lambda () + (setenv "PATH" + (string-append + #$e2fsprogs "/sbin:" + "/run/current-system/profile/sbin:" + $PATH))) + (lambda () + (mount-file-system + `(#$device #$title #$target #$type #$flags + #$options #$check?) + #:root "/")) + (lambda () + (setenv "PATH" $PATH))) + #t))) (stop #~(lambda args ;; Normally there are no processes left at this point, so ;; TARGET can be safely unmounted. |