1 module Text.Edifact.Fetcher
7 import Text.Edifact.Fetcher.Commons (Fetcher,
10 import Text.Edifact.Fetcher.Configuration
12 import Text.Edifact.Fetcher.Composites (compositesDirectory,
14 import Text.Edifact.Fetcher.Messages (fetchMessages,
16 import Text.Edifact.Fetcher.Segments (fetchSegments,
18 import Text.Edifact.Fetcher.Simples (fetchSimples,
21 import Control.Monad.IO.Class (liftIO)
22 import Data.Foldable (traverse_)
23 import System.Directory (createDirectoryIfMissing)
24 import System.FilePath ((</>))
26 fetch :: FetchingEnv -> IO ()
27 fetch = runFetcher (setupDirectories >> fetchAll)
29 fetchAll :: Fetcher ()
30 fetchAll = fetchMessages >>= fetchSegments >>= fetchComposites >>= fetchSimples
32 setupDirectories :: Fetcher ()
34 home <- getSpecificationHome
35 let mkdir d = liftIO (createDirectoryIfMissing True (home </> d))
36 traverse_ mkdir directories
38 directories :: [FilePath]