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