summary refs log tree commit diff
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)
downloadguix-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))