-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Use Template Haskell to embed file contents directly. -- -- Use Template Haskell to read a file or all the files in a directory, -- and turn them into (path, text) pairs embedded in your haskell code. @package file-embed @version 0.0.7 -- | This module uses template Haskell. Following is a simplified -- explanation of usage for those unfamiliar with calling Template -- Haskell functions. -- -- The function embedFile in this modules embeds a file into the -- exceutable that you can use it at runtime. A file is represented as a -- ByteString. However, as you can see below, the type signature -- indicates a value of type Q Exp will be returned. In order to -- convert this into a ByteString, you must use Template Haskell -- syntax, e.g.: -- --
-- $(embedFile "myfile.txt") ---- -- This expression will have type ByteString. Be certain to -- enable the TemplateHaskell language extension, usually by adding the -- following to the top of your module: -- --
-- {-# LANGUAGE TemplateHaskell #-}
--
module Data.FileEmbed
-- | Embed a single file in your source code.
--
-- -- import qualified Data.ByteString -- -- myFile :: Data.ByteString.ByteString -- myFile = $(embedFile "dirName/fileName") --embedFile :: FilePath -> Q Exp -- | Embed a single existing file in your source code out of list a list of -- paths supplied. -- --
-- import qualified Data.ByteString -- -- myFile :: Data.ByteString.ByteString -- myFile = $(embedFile' [ "dirName/fileName", "src/dirName/fileName" ]) --embedOneFileOf :: [FilePath] -> Q Exp -- | Embed a directory recursively in your source code. -- --
-- import qualified Data.ByteString -- -- myDir :: [(FilePath, Data.ByteString.ByteString)] -- myDir = $(embedDir "dirName") --embedDir :: FilePath -> Q Exp -- | Get a directory tree in the IO monad. -- -- This is the workhorse of embedDir getDir :: FilePath -> IO [(FilePath, ByteString)] dummySpace :: Int -> Q Exp inject :: ByteString -> ByteString -> Maybe ByteString injectFile :: ByteString -> FilePath -> FilePath -> IO () stringToBs :: String -> ByteString bsToExp :: ByteString -> Q Exp