nixos/filesystems: don't allow mountpoints with trailing slash
They are semantically the same as the non-slash version and therefore are potential source of duplicates. Also fixes https://github.com/NixOS/nixpkgs/issues/78951
This commit is contained in:
parent
19bf53f143
commit
f536901693
|
@ -7,8 +7,9 @@ let
|
||||||
|
|
||||||
addCheckDesc = desc: elemType: check: types.addCheck elemType check
|
addCheckDesc = desc: elemType: check: types.addCheck elemType check
|
||||||
// { description = "${elemType.description} (with check: ${desc})"; };
|
// { description = "${elemType.description} (with check: ${desc})"; };
|
||||||
nonEmptyStr = addCheckDesc "non-empty" types.str
|
|
||||||
(s: (builtins.match ".*[^ \t]+.*" s) != null);
|
isNonEmpty = s: (builtins.match ".*[^ \t]+.*" s) != null;
|
||||||
|
nonEmptyStr = addCheckDesc "non-empty" types.str isNonEmpty;
|
||||||
|
|
||||||
fileSystems' = toposort fsBefore (attrValues config.fileSystems);
|
fileSystems' = toposort fsBefore (attrValues config.fileSystems);
|
||||||
|
|
||||||
|
@ -28,10 +29,10 @@ let
|
||||||
coreFileSystemOpts = { name, config, ... }: {
|
coreFileSystemOpts = { name, config, ... }: {
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
mountPoint = mkOption {
|
mountPoint = mkOption {
|
||||||
example = "/mnt/usb";
|
example = "/mnt/usb";
|
||||||
type = nonEmptyStr;
|
type = addCheckDesc "non-empty without trailing slash" types.str
|
||||||
|
(s: isNonEmpty s && (builtins.match "(/|/.*[^/])" s) != null);
|
||||||
description = "Location of the mounted the file system.";
|
description = "Location of the mounted the file system.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue