summaryrefslogtreecommitdiffstats
path: root/nixos/modules/tasks/filesystems/cifs.nix
blob: 48342bcbc86a6135b2b3efd2386cabd23d6d78cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
  config,
  lib,
  pkgs,
  ...
}:

with lib;

let

  inInitrd = config.boot.initrd.supportedFilesystems.cifs or false;
  mount_cifs = "${lib.getBin pkgs.cifs-utils}/sbin/mount.cifs";

in

{
  config = {

    system.fsPackages = mkIf (config.boot.supportedFilesystems.cifs or false) [ pkgs.cifs-utils ];

    boot.initrd.availableKernelModules = mkIf inInitrd [
      "cifs"
      "nls_utf8"
      "hmac"
      "md4"
      "ecb"
      "des_generic"
      "sha256"
    ];

    boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable) ''
      copy_bin_and_libs ${mount_cifs}
    '';

    boot.initrd.systemd.extraBin."mount.cifs" = mkIf inInitrd mount_cifs;

  };
}