packages feed

ignore-0.1.1.0: src/Ignore/VCS/Git.hs

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}
module Ignore.VCS.Git
    ( makeChecker
    , file
    )
where

import Ignore.Builder

import Control.Monad.Trans
import Path
import qualified Data.Text as T

makeChecker :: MonadIO m => [T.Text] -> CheckerBuilderT m ()
makeChecker = mapM_ handleLine

file :: Path Rel File
file = $(mkRelFile ".gitignore")

handleLine :: MonadIO m => T.Text -> CheckerBuilderT m ()
handleLine origLn
    | T.null ln = return ()
    | T.head ln == '#' = return ()
    | otherwise = registerGlobGit ln
    where
      ln = T.strip origLn -- TODO: quoted trailing whitespace