From 30ac6d7be04d677cdc4a1da6d60622657665083f Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 17 Jul 2012 16:29:49 -0400 Subject: [PATCH] robustness fix Don't fall over symlinks, and avoid crashing if the file goes away. --- Utility/Kqueue.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Utility/Kqueue.hs b/Utility/Kqueue.hs index b475de3a3b..62b06a5323 100644 --- a/Utility/Kqueue.hs +++ b/Utility/Kqueue.hs @@ -69,10 +69,10 @@ data DirInfo = DirInfo getDirInfo :: FilePath -> IO DirInfo getDirInfo dir = do l <- filter (not . dirCruft) <$> getDirectoryContents dir - contents <- S.fromList <$> mapM addinode l + contents <- S.fromList . catMaybes <$> mapM addinode l return $ DirInfo dir contents where - addinode f = do + addinode f = catchMaybeIO $ do inode <- fileID <$> getFileStatus (dir f) return (f, inode)