From b07602a604d6d5db3b1ff85d1c3c008ad25245fa Mon Sep 17 00:00:00 2001 From: jakobrs Date: Thu, 21 May 2020 09:10:47 +0200 Subject: nixos/lib, nixos/filesystems: Make fsBefore more stable, and add `depends` option --- nixos/modules/tasks/filesystems.nix | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'nixos/modules/tasks/filesystems.nix') diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix index 065d6cc95d18..2949c82df8fe 100644 --- a/nixos/modules/tasks/filesystems.nix +++ b/nixos/modules/tasks/filesystems.nix @@ -24,13 +24,15 @@ let specialFSTypes = [ "proc" "sysfs" "tmpfs" "ramfs" "devtmpfs" "devpts" ]; + nonEmptyWithoutTrailingSlash = addCheckDesc "non-empty without trailing slash" types.str + (s: isNonEmpty s && (builtins.match ".+/" s) == null); + coreFileSystemOpts = { name, config, ... }: { options = { mountPoint = mkOption { example = "/mnt/usb"; - type = addCheckDesc "non-empty without trailing slash" types.str - (s: isNonEmpty s && (builtins.match ".+/" s) == null); + type = nonEmptyWithoutTrailingSlash; description = "Location of the mounted the file system."; }; @@ -55,6 +57,20 @@ let type = types.listOf nonEmptyStr; }; + depends = mkOption { + default = [ ]; + example = [ "/persist" ]; + type = types.listOf nonEmptyWithoutTrailingSlash; + description = '' + List of paths that should be mounted before this one. This filesystem's + and are always + checked and do not need to be included explicitly. If a path is added + to this list, any other filesystem whose mount point is a parent of + the path will be mounted before this filesystem. The paths do not need + to actually be the of some other filesystem. + ''; + }; + }; config = { -- cgit v1.2.3