diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-05-16 23:31:48 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-05-16 23:31:48 +0200 |
commit | 87a52da7d0da82bd8df9c86dcac7029c375b50c0 (patch) | |
tree | d26b4e81b70957e00e4743b159e089c777fd4e42 /guix | |
parent | d216323f0ae66f9e95cfd370318a2231d0845981 (diff) | |
download | gnu-guix-87a52da7d0da82bd8df9c86dcac7029c375b50c0.tar gnu-guix-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'.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/build/linux-initrd.scm | 20 |
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)) |