robustness fix

Don't fall over symlinks, and avoid crashing if the file goes away.
This commit is contained in:
Joey Hess 2012-07-17 16:29:49 -04:00
parent 7d89cf0eb9
commit 30ac6d7be0

View file

@ -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)