templatise-0.1.2.0: lib/initialise/File.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
module File (replace, convert) where
import Configuration (Configuration (..))
import Control.Monad.Reader (MonadIO (liftIO), MonadReader (ask))
import Data.Text (Text)
import qualified Data.Text as T (replace)
import Data.Text.IO (readFile, writeFile)
import Initialise.Types (Initialise)
import Prelude hiding (readFile, writeFile)
replace :: FilePath -> Initialise ()
replace path = do
-- TODO replaceWith convert
contents <- liftIO $ readFile path
contents' <- convert contents
liftIO $ writeFile path contents'
convert :: Text -> Initialise Text
convert contents = do
Configuration {..} <- ask
pure
. T.replace "templatise" name
. T.replace "template-hs" name
. T.replace "template.hs" name
$ contents