From 10d91c147968d2e4d63b99b5b0342624827f416f Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 26 Mar 2017 17:22:00 +0200 Subject: Use file-embed instead of hsb2hs to embed data files. I think template haskell is robust enough now across platforms that this will work. Motivation: file-embed gives us better dependency tracking: if a data file changes, ghc/stack/cabal know to recompile the Data module. This also removes hsb2hs as a build dependency. --- src/Text/Pandoc/Data.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/Text/Pandoc/Data.hs (limited to 'src/Text/Pandoc/Data.hs') diff --git a/src/Text/Pandoc/Data.hs b/src/Text/Pandoc/Data.hs new file mode 100644 index 000000000..df26f5412 --- /dev/null +++ b/src/Text/Pandoc/Data.hs @@ -0,0 +1,17 @@ +{-# LANGUAGE TemplateHaskell #-} + +module Text.Pandoc.Data (dataFiles) where + +import Data.FileEmbed +import qualified Data.ByteString as B +import System.FilePath (splitDirectories) +import qualified System.FilePath.Posix as Posix + +-- We ensure that the data files are stored using Posix +-- path separators (/), even on Windows. +dataFiles :: [(FilePath, B.ByteString)] +dataFiles = map (\(fp, contents) -> + (Posix.joinPath (splitDirectories fp), contents)) dataFiles' + +dataFiles' :: [(FilePath, B.ByteString)] +dataFiles' = ("MANUAL.txt", $(embedFile "MANUAL.txt")) : $(embedDir "data") -- cgit v1.2.3