diff --git a/ChangeLog.md b/ChangeLog.md index d496219..b38a3ea 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,7 @@ +## 0.0.11 + +* embedDirListing [#26](https://github.com/snoyberg/file-embed/pull/26) + ## 0.0.10.1 * Minor doc improvements diff --git a/Data/FileEmbed.hs b/Data/FileEmbed.hs index e55ff78..bbd83ee 100644 --- a/Data/FileEmbed.hs +++ b/Data/FileEmbed.hs @@ -21,6 +21,7 @@ module Data.FileEmbed embedFile , embedOneFileOf , embedDir + , embedDirListing , getDir -- * Embed as a IsString , embedStringFile @@ -118,6 +119,18 @@ embedDir fp = do e <- ListE <$> ((runIO $ fileList fp) >>= mapM (pairToExp fp)) return $ SigE e typ +-- | Embed a directory listing recursively in your source code. +-- +-- > myFiles :: [FilePath] +-- > myFiles = $(embedDirListing "dirName") +-- +-- @since 0.0.11 +embedDirListing :: FilePath -> Q Exp +embedDirListing fp = do + typ <- [t| [FilePath] |] + e <- ListE <$> ((runIO $ fmap fst <$> fileList fp) >>= mapM strToExp) + return $ SigE e typ + -- | Get a directory tree in the IO monad. -- -- This is the workhorse of 'embedDir' diff --git a/file-embed.cabal b/file-embed.cabal index 90db951..0921df0 100644 --- a/file-embed.cabal +++ b/file-embed.cabal @@ -1,5 +1,5 @@ name: file-embed -version: 0.0.10.1 +version: 0.0.11 license: BSD3 license-file: LICENSE author: Michael Snoyman