~ruther/guix-local

015d0a8418d867c13ae83acb44dc1157df2fedae — Danny Milosavljevic 8 years ago d4660a5
linux-boot: Add find-long-options.

* gnu/build/linux/boot.scm (find-long-options): New variable.
1 files changed, 11 insertions(+), 0 deletions(-)

M gnu/build/linux-boot.scm
M gnu/build/linux-boot.scm => gnu/build/linux-boot.scm +11 -0
@@ 37,6 37,7 @@
  #:export (mount-essential-file-systems
            linux-command-line
            find-long-option
            find-long-options
            make-essential-device-nodes
            make-static-device-nodes
            configure-qemu-networking


@@ 99,6 100,16 @@ Return the value associated with OPTION, or #f on failure."
           (lambda (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))
  "Make the block device nodes around BASE (something like \"/root/dev/sda\")
with the given MAJOR number, starting with MINOR."