git.iko.soy/typeable/file-embed
on master help sign in
Merge pull request #26 from srid/dirlisting

Add `embedDirListing`

commit257de69493f8bb294cd80d2aa486f49f8d711a10 authorMichael Snoyman <michael@snoyman.com> dateSun 29 Jul 2018, 10:18 (8 years ago) parent0c33a1d8ec3c5c
3 files changed+18−1
ChangeLog.md+4 Data/FileEmbed.hs+13 file-embed.cabal+1−1
ChangeLog.md+4
@@ -1,3 +1,7 @@
1+## 0.0.11
2+
3+* embedDirListing [#26](https://github.com/snoyberg/file-embed/pull/26)
4+
15## 0.0.10.1
26
37* Minor doc improvements
Data/FileEmbed.hs+13
@@ -21,6 +21,7 @@ module Data.FileEmbed
2121 embedFile
2222 , embedOneFileOf
2323 , embedDir
24+ , embedDirListing
2425 , getDir
2526 -- * Embed as a IsString
2627 , embedStringFile
@@ -118,6 +119,18 @@ embedDir fp = do
118119 e <- ListE <$> ((runIO $ fileList fp) >>= mapM (pairToExp fp))
119120 return $ SigE e typ
120121
122+-- | Embed a directory listing recursively in your source code.
123+--
124+-- > myFiles :: [FilePath]
125+-- > myFiles = $(embedDirListing "dirName")
126+--
127+-- @since 0.0.11
128+embedDirListing :: FilePath -> Q Exp
129+embedDirListing fp = do
130+ typ <- [t| [FilePath] |]
131+ e <- ListE <$> ((runIO $ fmap fst <$> fileList fp) >>= mapM strToExp)
132+ return $ SigE e typ
133+
121134-- | Get a directory tree in the IO monad.
122135--
123136-- This is the workhorse of 'embedDir'
file-embed.cabal+1−1
@@ -1,5 +1,5 @@
11name: file-embed
2−version: 0.0.10.1
2+version: 0.0.11
33license: BSD3
44license-file: LICENSE
55author: Michael Snoyman <michael@snoyman.com>