aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-05-16 23:31:48 +0200
committerLudovic Courtès <ludo@gnu.org>2014-05-16 23:31:48 +0200
commit87a52da7d0da82bd8df9c86dcac7029c375b50c0 (patch)
treed26b4e81b70957e00e4743b159e089c777fd4e42
parentd216323f0ae66f9e95cfd370318a2231d0845981 (diff)
downloadpatches-87a52da7d0da82bd8df9c86dcac7029c375b50c0.tar
patches-87a52da7d0da82bd8df9c86dcac7029c375b50c0.tar.gz
linux-initrd: Factorize kernel command-line option parsing.
* guix/build/linux-initrd.scm (find-long-option): New procedure. (boot-system): Use it instead of the local 'option'.
-rw-r--r--guix/build/linux-initrd.scm20
1 files changed, 12 insertions, 8 deletions
diff --git a/guix/build/linux-initrd.scm b/guix/build/linux-initrd.scm
index a89ff86bbb..9093e72695 100644
--- a/guix/build/linux-initrd.scm
+++ b/guix/build/linux-initrd.scm
@@ -28,6 +28,7 @@
#:use-module (guix build utils)
#:export (mount-essential-file-systems
linux-command-line
+ find-long-option
make-essential-device-nodes
configure-qemu-networking
check-file-system
@@ -78,6 +79,15 @@
(call-with-input-file "/proc/cmdline"
get-string-all)))
+(define (find-long-option option arguments)
+ "Find OPTION among ARGUMENTS, where OPTION is something like \"--load\".
+Return the value associated with OPTION, or #f on failure."
+ (let ((opt (string-append option "=")))
+ (and=> (find (cut string-prefix? opt <>)
+ arguments)
+ (lambda (arg)
+ (substring arg (+ 1 (string-index arg #\=)))))))
+
(define* (make-essential-device-nodes #:key (root "/"))
"Make essential device nodes under ROOT/dev."
;; The hand-made udev!
@@ -411,14 +421,8 @@ to it are lost."
(mount-essential-file-systems)
(let* ((args (linux-command-line))
- (option (lambda (opt)
- (let ((opt (string-append opt "=")))
- (and=> (find (cut string-prefix? opt <>)
- args)
- (lambda (arg)
- (substring arg (+ 1 (string-index arg #\=))))))))
- (to-load (option "--load"))
- (root (option "--root")))
+ (to-load (find-long-option "--load" args))
+ (root (find-long-option "--root" args)))
(when (member "--repl" args)
(start-repl))