linux-boot: Add find-long-options.

* gnu/build/linux/boot.scm (find-long-options): New variable.
This commit is contained in:
Danny Milosavljevic 2018-01-31 13:28:21 +01:00
parent d4660a5440
commit 015d0a8418
No known key found for this signature in database
GPG Key ID: E71A35542C30BAA5
1 changed files with 11 additions and 0 deletions

View File

@ -37,6 +37,7 @@
#:export (mount-essential-file-systems #:export (mount-essential-file-systems
linux-command-line linux-command-line
find-long-option find-long-option
find-long-options
make-essential-device-nodes make-essential-device-nodes
make-static-device-nodes make-static-device-nodes
configure-qemu-networking configure-qemu-networking
@ -99,6 +100,16 @@ Return the value associated with OPTION, or #f on failure."
(lambda (arg) (lambda (arg)
(substring arg (+ 1 (string-index arg #\=))))))) (substring arg (+ 1 (string-index arg #\=)))))))
(define (find-long-options option arguments)
"Find OPTIONs among ARGUMENTS, where OPTION is something like \"console\".
Return the values associated with OPTIONs as a list, or the empty list if
OPTION doesn't appear in ARGUMENTS."
(let ((opt (string-append option "=")))
(filter-map (lambda (arg)
(and (string-prefix? opt arg)
(substring arg (+ 1 (string-index arg #\=)))))
arguments)))
(define* (make-disk-device-nodes base major #:optional (minor 0)) (define* (make-disk-device-nodes base major #:optional (minor 0))
"Make the block device nodes around BASE (something like \"/root/dev/sda\") "Make the block device nodes around BASE (something like \"/root/dev/sda\")
with the given MAJOR number, starting with MINOR." with the given MAJOR number, starting with MINOR."