filesystems: use non-interactive formatOptions by default

When autoFormat is enabled, in order to successfully create a filesystem,
certain filesystems require specific options to be passed to mkfs to prevent
it from asking questions. This commit sets default formatOptions to "-q"
for "jfs" and "reiserfs" filesystems for this purpose.

Resolves #29140.

Changed files
+11 -4
nixos
modules
+11 -4
nixos/modules/tasks/filesystems.nix
···
};
-
config = {
options = mkIf config.autoResize [ "x-nixos.autoresize" ];
-
-
# -F needed to allow bare block device without partitions
-
formatOptions = mkIf ((builtins.substring 0 3 config.fsType) == "ext") (mkDefault "-F");
};
};
···
};
+
config = let
+
defaultFormatOptions =
+
# -F needed to allow bare block device without partitions
+
if (builtins.substring 0 3 config.fsType) == "ext" then "-F"
+
# -q needed for non-interactive operations
+
else if config.fsType == "jfs" then "-q"
+
# (same here)
+
else if config.fsType == "reiserfs" then "-q"
+
else null;
+
in {
options = mkIf config.autoResize [ "x-nixos.autoresize" ];
+
formatOptions = mkIf (defaultFormatOptions != null) (mkDefault defaultFormatOptions);
};
};