File: HsFile.hs

package info (click to toggle)
haskell-yesod-bin 1.6.2.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 184 kB
  • sloc: haskell: 989; makefile: 2
file content (18 lines) | stat: -rw-r--r-- 571 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
module HsFile (mkHsFile) where
import Text.ProjectTemplate (createTemplate)
import Conduit
import qualified Data.ByteString as BS
import Control.Monad.IO.Class (liftIO)
import Data.String (fromString)

mkHsFile :: IO ()
mkHsFile = runConduitRes
         $ sourceDirectory "."
        .| readIt
        .| createTemplate
        .| mapM_C (liftIO . BS.putStr)
  where
    -- Reads a filepath from upstream and dumps a pair of (filepath, filecontents)
    readIt = mapC $ \i -> (fromString i, liftIO $ BS.readFile i)