aboutsummaryrefslogtreecommitdiffhomepage
path: root/scaffolder/src/Text/Edifact/BundleReader/Configuration.hs
blob: 0609c0346f727c925d62a0a5b92ccdb58a4419b4 (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
{-# LANGUAGE FlexibleContexts #-}

module Text.Edifact.BundleReader.Configuration
  ( -- * Parsing environment
    BundleReaderEnv(..)
    -- * Shortcuts for reading the environment
  , getTargetRevision
  , getHome
  ) where

import           Text.Edifact.Scaffolder.Commons (MessageCode, Revision)

import           Control.Monad.Reader.Class      (MonadReader, asks)

data BundleReaderEnv = BundleReaderEnv { parserRevision :: Revision
                           , specificationHome          :: FilePath
                           , bundle                     :: [FilePath]
                           , messageNames               :: [MessageCode]
                           , messagesFiles              :: [FilePath]
                           , segmentsFiles              :: [FilePath]
                           , compositesFiles            :: [FilePath]
                           , simplesFiles               :: [FilePath]
                           , codedSimplesFiles          :: [FilePath]
                           }

getTargetRevision :: MonadReader BundleReaderEnv m => m Revision
getTargetRevision = asks parserRevision

getHome :: MonadReader BundleReaderEnv m => m FilePath
getHome = asks specificationHome