~ruther/guix-local

7208995426714c9fc3ad59cadc3cc0f52df0f018 — Danny Milosavljevic 9 years ago 84aac61
file-systems: Factorize file-system-packages.

* gnu/system/linux-initrd.scm (base-initrd): Move helper-packages body to ...
* gnu/system/file-systems.scm (file-system-packages): ... here.  New variable.
Also export it.
2 files changed, 27 insertions(+), 17 deletions(-)

M gnu/system/file-systems.scm
M gnu/system/linux-initrd.scm
M gnu/system/file-systems.scm => gnu/system/file-systems.scm +26 -0
@@ 22,6 22,8 @@
  #:use-module (guix records)
  #:use-module ((gnu build file-systems)
                #:select (string->uuid uuid->string))
  #:use-module (gnu packages linux)
  #:use-module (gnu packages disk)
  #:re-export (string->uuid
               uuid->string)
  #:export (<file-system>


@@ 65,6 67,8 @@

            file-system-mapping->bind-mount

            file-system-packages

            %store-mapping
            %network-configuration-files
            %network-file-mappings))


@@ 411,4 415,26 @@ a bind mount."
                 (writable? (string=? file "/etc/resolv.conf"))))
              %network-configuration-files))

(define (file-system-type-predicate type)
  (lambda (fs)
    (string=? (file-system-type fs) type)))

(define* (file-system-packages file-systems #:key (volatile-root? #f))
 `(,@(if (find (lambda (fs)
                 (string-prefix? "ext" (file-system-type fs)))
               file-systems)
         (list e2fsck/static)
         '())
   ,@(if (find (lambda (fs)
                 (string-suffix? "fat" (file-system-type fs)))
               file-systems)
         (list fatfsck/static)
         '())
   ,@(if (find (file-system-type-predicate "btrfs") file-systems)
         (list btrfs-progs/static)
         '())
   ,@(if volatile-root?
         (list unionfs-fuse/static)
         '())))

;;; file-systems.scm ends here

M gnu/system/linux-initrd.scm => gnu/system/linux-initrd.scm +1 -17
@@ 272,23 272,7 @@ loaded at boot time in the order in which they appear."
      ,@extra-modules))

  (define helper-packages
    ;; Packages to be copied on the initrd.
    `(,@(if (find (lambda (fs)
                    (string-prefix? "ext" (file-system-type fs)))
                  file-systems)
            (list e2fsck/static)
            '())
      ,@(if (find (lambda (fs)
                    (string-suffix? "fat" (file-system-type fs)))
                  file-systems)
            (list fatfsck/static)
            '())
      ,@(if (find (file-system-type-predicate "btrfs") file-systems)
            (list btrfs-progs/static)
            '())
      ,@(if volatile-root?
            (list unionfs-fuse/static)
            '())))
    (file-system-packages file-systems #:volatile-root? volatile-root?))

  (raw-initrd file-systems
              #:linux linux