]> git.immae.eu Git - github/fretlink/edi-parser.git/blame - scaffolder/src/Text/Edifact/Fetcher.hs
Release code as open source
[github/fretlink/edi-parser.git] / scaffolder / src / Text / Edifact / Fetcher.hs
CommitLineData
a9d77a20
FM
1module Text.Edifact.Fetcher
2 ( fetch
3 , FetchingEnv(..)
4 , readSelectMessages
5 ) where
6
7import Text.Edifact.Fetcher.Commons (Fetcher,
8 getSpecificationHome,
9 runFetcher)
10import Text.Edifact.Fetcher.Configuration
11
12import Text.Edifact.Fetcher.Composites (compositesDirectory,
13 fetchComposites)
14import Text.Edifact.Fetcher.Messages (fetchMessages,
15 messagesDirectory)
16import Text.Edifact.Fetcher.Segments (fetchSegments,
17 segmentsDirectory)
18import Text.Edifact.Fetcher.Simples (fetchSimples,
19 simplesDirectory)
20
21import Control.Monad.IO.Class (liftIO)
22import Data.Foldable (traverse_)
23import System.Directory (createDirectoryIfMissing)
24import System.FilePath ((</>))
25
26fetch :: FetchingEnv -> IO ()
27fetch = runFetcher (setupDirectories >> fetchAll)
28
29fetchAll :: Fetcher ()
30fetchAll = fetchMessages >>= fetchSegments >>= fetchComposites >>= fetchSimples
31
32setupDirectories :: Fetcher ()
33setupDirectories = do
34 home <- getSpecificationHome
35 let mkdir d = liftIO (createDirectoryIfMissing True (home </> d))
36 traverse_ mkdir directories
37
38directories :: [FilePath]
39directories =
40 [ compositesDirectory
41 , messagesDirectory
42 , segmentsDirectory
43 , simplesDirectory
44 ]