26 lines
		
	
	
		
			727 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			727 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, pkgs, lib, ... }:
 | 
						|
 | 
						|
with lib;
 | 
						|
 | 
						|
let
 | 
						|
  inInitrd = any (fs: fs == "f2fs") config.boot.initrd.supportedFilesystems;
 | 
						|
  fileSystems = filter (x: x.fsType == "f2fs") config.system.build.fileSystems;
 | 
						|
in
 | 
						|
{
 | 
						|
  config = mkIf (any (fs: fs == "f2fs") config.boot.supportedFilesystems) {
 | 
						|
 | 
						|
    system.fsPackages = [ pkgs.f2fs-tools ];
 | 
						|
 | 
						|
    boot.initrd.availableKernelModules = mkIf inInitrd [ "f2fs" "crc32" ];
 | 
						|
 | 
						|
    boot.initrd.extraUtilsCommands = mkIf inInitrd ''
 | 
						|
      copy_bin_and_libs ${pkgs.f2fs-tools}/sbin/fsck.f2fs
 | 
						|
      ${optionalString (any (fs: fs.autoResize) fileSystems) ''
 | 
						|
        # We need f2fs-tools' tools to resize filesystems
 | 
						|
        copy_bin_and_libs ${pkgs.f2fs-tools}/sbin/resize.f2fs
 | 
						|
      ''}
 | 
						|
 | 
						|
    '';
 | 
						|
  };
 | 
						|
}
 |