From e3f97e514d2c293145c99a2438bf31754dcccc06 Mon Sep 17 00:00:00 2001 From: Pavel Goran Date: Thu, 12 Oct 2017 09:35:31 +0700 Subject: [PATCH] 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. --- nixos/modules/tasks/filesystems.nix | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix index 6ceb36714b28..b3690fad1a6a 100644 --- a/nixos/modules/tasks/filesystems.nix +++ b/nixos/modules/tasks/filesystems.nix @@ -115,11 +115,18 @@ let }; - config = { + 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" ]; - - # -F needed to allow bare block device without partitions - formatOptions = mkIf ((builtins.substring 0 3 config.fsType) == "ext") (mkDefault "-F"); + formatOptions = mkIf (defaultFormatOptions != null) (mkDefault defaultFormatOptions); }; };