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 changed files with 22 additions and 1 deletions
				
			
		|  | @ -1,6 +1,7 @@ | ||||||
| ;;; GNU Guix --- Functional package management for GNU | ;;; GNU Guix --- Functional package management for GNU | ||||||
| ;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org> | ;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org> | ||||||
| ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> | ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> | ||||||
|  | ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -48,7 +49,9 @@ | ||||||
|             device-module-aliases |             device-module-aliases | ||||||
|             known-module-aliases |             known-module-aliases | ||||||
|             matching-modules |             matching-modules | ||||||
|             missing-modules)) |             missing-modules | ||||||
|  | 
 | ||||||
|  |             write-module-alias-database)) | ||||||
| 
 | 
 | ||||||
| ;;; Commentary: | ;;; Commentary: | ||||||
| ;;; | ;;; | ||||||
|  | @ -486,4 +489,22 @@ are required to access DEVICE." | ||||||
|         (remove (cut member <> provided) modules)) |         (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 | ;;; linux-modules.scm ends here | ||||||
|  |  | ||||||
		Reference in a new issue