diff options
author | Joey Hess <joey@kitenet.net> | 2012-06-06 15:50:12 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-06-06 15:50:12 -0400 |
commit | db8effb8f3e861c61bc4c640d712688a8ed342e1 (patch) | |
tree | b448bd75c212620f43f01a819457bfe7f6e85d14 /Utility | |
parent | b819f644ad00c5ad13ba5b249d3e127fd59d8694 (diff) |
ignore .gitignore and .gitattributes
Diffstat (limited to 'Utility')
-rw-r--r-- | Utility/Inotify.hs | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/Utility/Inotify.hs b/Utility/Inotify.hs index 3c69a7ee2..1896a2a26 100644 --- a/Utility/Inotify.hs +++ b/Utility/Inotify.hs @@ -48,15 +48,13 @@ type Hook = Maybe (FilePath -> IO ()) - So this will fail if there are too many subdirectories. -} watchDir :: INotify -> FilePath -> (FilePath -> Bool) -> Hook -> Hook -> Hook -> Hook -> IO () -watchDir i dir ignored add addsymlink del deldir - | ignored dir = noop - | otherwise = do - lock <- newLock - void $ addWatch i watchevents dir $ \event -> - withLock lock (void $ go event) - withLock lock $ - mapM_ walk =<< filter (not . dirCruft) <$> - getDirectoryContents dir +watchDir i dir ignored add addsymlink del deldir = unless (ignored dir) $ do + lock <- newLock + void $ addWatch i watchevents dir $ \event -> + withLock lock (void $ go event) + withLock lock $ + mapM_ walk =<< filter (not . dirCruft) <$> + getDirectoryContents dir where recurse d = watchDir i d ignored add addsymlink del deldir @@ -71,7 +69,7 @@ watchDir i dir ignored add addsymlink del deldir | isJust del || isJust deldir = [MoveOut, Delete] | otherwise = [] - walk f = do + walk f = unless (ignored f) $ do let fullf = indir f r <- catchMaybeIO $ getSymbolicLinkStatus fullf case r of @@ -112,7 +110,7 @@ watchDir i dir ignored add addsymlink del deldir guarded = unlessM (filetype (const True) f) go _ = noop - Just a <@> f = a $ indir f + Just a <@> f = unless (ignored f) $ a $ indir f Nothing <@> _ = noop indir f = dir </> f |