-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Handle ignore files of different VCSes
--   
--   Library and tiny tool for working with ignore files of different
--   version control systems
@package ignore
@version 0.1.1.0

module Ignore

-- | Search for the ignore/boring files of different VCSes starting a
--   directory
findIgnoreFiles :: [VCS] -> Path Abs Dir -> IO [IgnoreFile]

-- | Build function that checks if a file should be ignored
buildChecker :: [IgnoreFile] -> IO (Either String FileIgnoredChecker)

-- | VCS type
data VCS
VCSGit :: VCS
VCSMercurial :: VCS
VCSDarcs :: VCS

-- | An ignore file
data IgnoreFile
IgnoreFile :: VCS -> Either (Path Abs File) Text -> IgnoreFile
[if_vcs] :: IgnoreFile -> VCS

-- | Either a path to a file or an embedded <a>Text</a> containing the
--   ignore files data
[if_data] :: IgnoreFile -> Either (Path Abs File) Text

-- | Abstract checker if a file should be ignored
newtype FileIgnoredChecker
FileIgnoredChecker :: (FilePath -> Bool) -> FileIgnoredChecker
[runFileIgnoredChecker] :: FileIgnoredChecker -> FilePath -> Bool
