From 70fc7b8d319a34479d3b8d50b8825732891ca7bd Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Sat, 18 Dec 2021 14:35:14 +0100 Subject: [PATCH] Follow symbolic links when doing validation Needed for files stored with git-annex. --- src/GEval/Validation.hs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/GEval/Validation.hs b/src/GEval/Validation.hs index 9ff0f49..db621e8 100644 --- a/src/GEval/Validation.hs +++ b/src/GEval/Validation.hs @@ -15,7 +15,6 @@ import System.FilePath import System.Directory import Control.Exception import Control.Monad.Trans.Resource -import Control.Monad.IO.Class import Control.Conditional (unlessM, whenM, unless, when) import Data.Conduit import qualified Data.Conduit.List as CL @@ -154,8 +153,15 @@ testDirFilter :: FindClause Bool testDirFilter = (SFF.fileType ==? Directory) &&? (SFF.fileName ~~? "dev-*" ||? SFF.fileName ~~? "test-*") +fileTypeFollowed :: FindClause FileType +fileTypeFollowed = do + status <- followStatus + case status of + Just status' -> return $ statusType status' + Nothing -> fileType + fileFilter :: String -> FindClause Bool -fileFilter fileName = (SFF.fileType ==? RegularFile) &&? (SFF.fileName ~~? fileName ||? SFF.fileName ~~? fileName ++ exts) +fileFilter fileName = (fileTypeFollowed ==? RegularFile) &&? (SFF.fileName ~~? fileName ||? SFF.fileName ~~? fileName ++ exts) where exts = Prelude.concat [ "(", intercalate "|" compressedFilesHandled, ")" ]