linux-modules: Add "modules.alias" writer.
* gnu/build/linux-modules.scm (write-module-alias-database): New procedure. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
268896444b
commit
4f8b9d1a6f
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -48,7 +49,9 @@
|
|||
device-module-aliases
|
||||
known-module-aliases
|
||||
matching-modules
|
||||
missing-modules))
|
||||
missing-modules
|
||||
|
||||
write-module-alias-database))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -486,4 +489,22 @@ are required to access DEVICE."
|
|||
(remove (cut member <> provided) modules))
|
||||
'()))
|
||||
|
||||
(define (write-module-alias-database directory)
|
||||
"Traverse the '.ko' files in DIRECTORY and create the corresponding
|
||||
'modules.alias' file."
|
||||
(define aliases
|
||||
(map (lambda (file)
|
||||
(cons (file-name->module-name file) (module-aliases file)))
|
||||
(find-files directory "\\.ko$")))
|
||||
|
||||
(call-with-output-file (string-append directory "/modules.alias")
|
||||
(lambda (port)
|
||||
(display "# Aliases extracted from modules themselves.\n" port)
|
||||
(for-each (match-lambda
|
||||
((module . aliases)
|
||||
(for-each (lambda (alias)
|
||||
(format port "alias ~a ~a\n" alias module))
|
||||
aliases)))
|
||||
aliases))))
|
||||
|
||||
;;; linux-modules.scm ends here
|
||||
|
|
Loading…
Reference in New Issue