diff options
author | Frédéric Menou <frederic.menou@fretlink.com> | 2016-12-08 10:19:15 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@fretlink.com> | 2022-05-17 18:01:51 +0200 |
commit | a9d77a20008efe82862cc1adbfa7a6d4f09f8ff7 (patch) | |
tree | adf3186fdccaeef19151026cdfbd38a530cf9ecb /scaffolder/src/Text/Edifact/Fetcher.hs | |
download | edi-parser-a9d77a20008efe82862cc1adbfa7a6d4f09f8ff7.tar.gz edi-parser-a9d77a20008efe82862cc1adbfa7a6d4f09f8ff7.tar.zst edi-parser-a9d77a20008efe82862cc1adbfa7a6d4f09f8ff7.zip |
Diffstat (limited to 'scaffolder/src/Text/Edifact/Fetcher.hs')
-rw-r--r-- | scaffolder/src/Text/Edifact/Fetcher.hs | 44 |
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 @@ | |||
1 | module Text.Edifact.Fetcher | ||
2 | ( fetch | ||
3 | , FetchingEnv(..) | ||
4 | , readSelectMessages | ||
5 | ) where | ||
6 | |||
7 | import Text.Edifact.Fetcher.Commons (Fetcher, | ||
8 | getSpecificationHome, | ||
9 | runFetcher) | ||
10 | import Text.Edifact.Fetcher.Configuration | ||
11 | |||
12 | import Text.Edifact.Fetcher.Composites (compositesDirectory, | ||
13 | fetchComposites) | ||
14 | import Text.Edifact.Fetcher.Messages (fetchMessages, | ||
15 | messagesDirectory) | ||
16 | import Text.Edifact.Fetcher.Segments (fetchSegments, | ||
17 | segmentsDirectory) | ||
18 | import Text.Edifact.Fetcher.Simples (fetchSimples, | ||
19 | simplesDirectory) | ||
20 | |||
21 | import Control.Monad.IO.Class (liftIO) | ||
22 | import Data.Foldable (traverse_) | ||
23 | import System.Directory (createDirectoryIfMissing) | ||
24 | import System.FilePath ((</>)) | ||
25 | |||
26 | fetch :: FetchingEnv -> IO () | ||
27 | fetch = runFetcher (setupDirectories >> fetchAll) | ||
28 | |||
29 | fetchAll :: Fetcher () | ||
30 | fetchAll = fetchMessages >>= fetchSegments >>= fetchComposites >>= fetchSimples | ||
31 | |||
32 | setupDirectories :: Fetcher () | ||
33 | setupDirectories = do | ||
34 | home <- getSpecificationHome | ||
35 | let mkdir d = liftIO (createDirectoryIfMissing True (home </> d)) | ||
36 | traverse_ mkdir directories | ||
37 | |||
38 | directories :: [FilePath] | ||
39 | directories = | ||
40 | [ compositesDirectory | ||
41 | , messagesDirectory | ||
42 | , segmentsDirectory | ||
43 | , simplesDirectory | ||
44 | ] | ||