packages feed

mediawiki2latex-7.6: src/Static.hs

{-# LANGUAGE TemplateHaskell #-}
module Static where
import Data.FileEmbed
import Data.ByteString
import System.Directory
import Data.ByteString.UTF8
 
headerFiles :: [(FilePath, ByteString)]
headerFiles = $(embedDir "./document/headers")
 
babelFiles :: [(FilePath, ByteString)]
babelFiles = $(embedDir "./src/babel")
 
createDirectories :: String -> IO [()]
createDirectories pathname
  = mapM
      (\ s ->
         (createDirectoryIfMissing True (pathname ++ "/document/" ++ s)))
      ["images", "headers", "main"]
 
writeFiles ::
           String -> [(FilePath, Data.ByteString.ByteString)] -> IO ()
writeFiles pathname filelist
  = do _ <- (mapM
               (\ (name, content) ->
                  Data.ByteString.writeFile (pathname ++ name) content)
               filelist)
       return ()
 
latexHeader :: ByteString
latexHeader = $(embedFile "./latex/my-head.tex")
 
latexFooter :: ByteString
latexFooter = $(embedFile "./latex/my-tail.tex")
 
latexPreamble :: ByteString
latexPreamble = $(embedFile "./latex/preamble.tex")
 
latexTableHeader :: ByteString
latexTableHeader = $(embedFile "./latex/my-tabhead.tex")
 
latexTableFooter :: ByteString
latexTableFooter = $(embedFile "./latex/my-tabtail.tex")
 
userTemplates :: String
userTemplates
  = toString $(embedFile "./latex/templates.user")
 
extract :: String -> IO ()
extract pathname
  = do _ <- createDirectories pathname
       writeFiles (pathname ++ "/document/headers/") headerFiles