{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE OverloadedStrings #-} module Hack.Manager.Gitignore ( renderGitignore ) where import Hack.Manager.Types import Control.Monad import Data.FileEmbed import qualified Data.ByteString as BS import qualified Data.Text as T import qualified Data.Text.Encoding as T import qualified Data.Text.Lazy as TL import qualified Text.Hastache as H import qualified Text.Hastache.Context as H giTemplate :: BS.ByteString giTemplate = $(embedFile "templates/gitignore.mustache") renderGitignore :: ProjectInfo -> IO T.Text renderGitignore pinfo = liftM TL.toStrict $ H.hastacheStr cfg (T.decodeUtf8 giTemplate) ctx where ctx = H.mkGenericContext pinfo cfg = H.defaultConfig { H.muTemplateFileDir = Nothing , H.muEscapeFunc = H.emptyEscape }