summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaron Andersen <aaron@fosslib.net>2018-09-07 17:49:38 -0400
committerAaron Andersen <aaron@fosslib.net>2018-10-28 20:49:34 -0400
commit36d695f696e73ff1be79b48e01df663eaac22e3b (patch)
treeec68403e566c18649aeb55011e29f2be5e4f72d4
parent0bb9b3c233fae8bfc846bcf20b951b72670e05e8 (diff)
downloadnixlib-36d695f696e73ff1be79b48e01df663eaac22e3b.tar
nixlib-36d695f696e73ff1be79b48e01df663eaac22e3b.tar.gz
nixlib-36d695f696e73ff1be79b48e01df663eaac22e3b.tar.bz2
nixlib-36d695f696e73ff1be79b48e01df663eaac22e3b.tar.lz
nixlib-36d695f696e73ff1be79b48e01df663eaac22e3b.tar.xz
nixlib-36d695f696e73ff1be79b48e01df663eaac22e3b.tar.zst
nixlib-36d695f696e73ff1be79b48e01df663eaac22e3b.zip
filesystems: escape spaces in fstab with \040
-rw-r--r--nixos/modules/tasks/filesystems.nix8
1 files changed, 5 insertions, 3 deletions
diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix
index b3690fad1a6a..9e4057b50897 100644
--- a/nixos/modules/tasks/filesystems.nix
+++ b/nixos/modules/tasks/filesystems.nix
@@ -230,6 +230,8 @@ in
       let
         fsToSkipCheck = [ "none" "bindfs" "btrfs" "zfs" "tmpfs" "nfs" "vboxsf" "glusterfs" ];
         skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck;
+        # https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
+        escape = string: builtins.replaceStrings [ " " ] [ "\\040" ] string;
       in ''
         # This is a generated file.  Do not edit!
         #
@@ -238,10 +240,10 @@ in
 
         # Filesystems.
         ${concatMapStrings (fs:
-            (if fs.device != null then fs.device
-             else if fs.label != null then "/dev/disk/by-label/${fs.label}"
+            (if fs.device != null then escape fs.device
+             else if fs.label != null then "/dev/disk/by-label/${escape fs.label}"
              else throw "No device specified for mount point ‘${fs.mountPoint}’.")
-            + " " + fs.mountPoint
+            + " " + escape fs.mountPoint
             + " " + fs.fsType
             + " " + builtins.concatStringsSep "," fs.options
             + " 0"