aboutsummaryrefslogtreecommitdiffhomepage
path: root/scaffolder/src/Text/Edifact/Fetcher.hs
diff options
context:
space:
mode:
Diffstat (limited to 'scaffolder/src/Text/Edifact/Fetcher.hs')
-rw-r--r--scaffolder/src/Text/Edifact/Fetcher.hs44
1 files changed, 44 insertions, 0 deletions
diff --git a/scaffolder/src/Text/Edifact/Fetcher.hs b/scaffolder/src/Text/Edifact/Fetcher.hs
new file mode 100644
index 0000000..a319546
--- /dev/null
+++ b/scaffolder/src/Text/Edifact/Fetcher.hs
@@ -0,0 +1,44 @@
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 ]