summary refs log tree commit diff
diff options
context:
space:
mode:
authorSilvan Mosberger <silvan.mosberger@tweag.io>2023-04-05 16:10:09 +0200
committerSilvan Mosberger <silvan.mosberger@tweag.io>2023-04-05 17:18:10 +0200
commitc701a4dd299aaa82589e4e4d4ce49ae330729a25 (patch)
tree79187c5ce01e9ab56881d38b828d5ac6fd27dfa8
parenta8e4f58d903295920c5a3cdb3d4882d0675b0480 (diff)
downloadnixpkgs-c701a4dd299aaa82589e4e4d4ce49ae330729a25.tar
nixpkgs-c701a4dd299aaa82589e4e4d4ce49ae330729a25.tar.gz
nixpkgs-c701a4dd299aaa82589e4e4d4ce49ae330729a25.tar.bz2
nixpkgs-c701a4dd299aaa82589e4e4d4ce49ae330729a25.tar.lz
nixpkgs-c701a4dd299aaa82589e4e4d4ce49ae330729a25.tar.xz
nixpkgs-c701a4dd299aaa82589e4e4d4ce49ae330729a25.tar.zst
nixpkgs-c701a4dd299aaa82589e4e4d4ce49ae330729a25.zip
lib.sources.pathType and co.: Move to lib.filesystem
These functions only work with the filesystem, they don't import
anything as sources
-rw-r--r--lib/default.nix5
-rw-r--r--lib/filesystem.nix26
-rw-r--r--lib/sources.nix37
3 files changed, 47 insertions, 21 deletions
diff --git a/lib/default.nix b/lib/default.nix
index 0424db36b2e..8fea4b8ad63 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -117,10 +117,11 @@ let
     inherit (self.meta) addMetaAttrs dontDistribute setName updateName
       appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
       hiPrioSet getLicenseFromSpdxId getExe;
-    inherit (self.sources) pathType pathIsDirectory cleanSourceFilter
+    inherit (self.filesystem) pathType pathIsDirectory pathIsRegularFile;
+    inherit (self.sources) cleanSourceFilter
       cleanSource sourceByRegex sourceFilesBySuffices
       commitIdFromGitRepo cleanSourceWith pathHasContext
-      canCleanSource pathIsRegularFile pathIsGitRepo;
+      canCleanSource pathIsGitRepo;
     inherit (self.modules) evalModules setDefaultModuleLocation
       unifyModuleSyntax applyModuleArgsIfFunction mergeModules
       mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions
diff --git a/lib/filesystem.nix b/lib/filesystem.nix
index 94819605520..2d8a62639ec 100644
--- a/lib/filesystem.nix
+++ b/lib/filesystem.nix
@@ -2,12 +2,38 @@
 { lib }:
 
 let
+  inherit (builtins)
+    getAttr
+    readDir
+    pathExists
+    ;
+
   inherit (lib.strings)
     hasPrefix
     ;
+
+  inherit (lib.filesystem)
+    pathType
+    ;
 in
 
 {
+
+  /*
+    Returns the type of a path: regular (for file), symlink, or directory.
+  */
+  pathType = path: getAttr (baseNameOf path) (readDir (dirOf path));
+
+  /*
+    Returns true if the path exists and is a directory, false otherwise.
+  */
+  pathIsDirectory = path: if pathExists path then (pathType path) == "directory" else false;
+
+  /*
+    Returns true if the path exists and is a regular file, false otherwise.
+  */
+  pathIsRegularFile = path: if pathExists path then (pathType path) == "regular" else false;
+
   /*
     A map of all haskell packages defined in the given path,
     identified by having a cabal file with the same name as the
diff --git a/lib/sources.nix b/lib/sources.nix
index 3ad7dc63355..d990777c6fc 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -18,21 +18,11 @@ let
     pathExists
     readFile
     ;
-
-  /*
-    Returns the type of a path: regular (for file), symlink, or directory.
-  */
-  pathType = path: getAttr (baseNameOf path) (readDir (dirOf path));
-
-  /*
-    Returns true if the path exists and is a directory, false otherwise.
-  */
-  pathIsDirectory = path: if pathExists path then (pathType path) == "directory" else false;
-
-  /*
-    Returns true if the path exists and is a regular file, false otherwise.
-  */
-  pathIsRegularFile = path: if pathExists path then (pathType path) == "regular" else false;
+  inherit (lib.filesystem)
+    pathType
+    pathIsDirectory
+    pathIsRegularFile
+    ;
 
   /*
     A basic filter for `cleanSourceWith` that removes
@@ -271,11 +261,20 @@ let
     };
 
 in {
-  inherit
-    pathType
-    pathIsDirectory
-    pathIsRegularFile
 
+  pathType = lib.warnIf (lib.isInOldestRelease 2305)
+    "lib.sources.pathType has been moved to lib.filesystem.pathType."
+    lib.filesystem.pathType;
+
+  pathIsDirectory = lib.warnIf (lib.isInOldestRelease 2305)
+    "lib.sources.pathIsDirectory has been moved to lib.filesystem.pathIsDirectory."
+    lib.filesystem.pathIsDirectory;
+
+  pathIsRegularFile = lib.warnIf (lib.isInOldestRelease 2305)
+    "lib.sources.pathIsRegularFile has been moved to lib.filesystem.pathIsRegularFile."
+    lib.filesystem.pathIsRegularFile;
+
+  inherit
     pathIsGitRepo
     commitIdFromGitRepo