module Puppet.DSL.Loader (parseFile) where import Text.Parsec import Puppet.DSL.Types import Puppet.DSL.Parser import Control.Monad.Error -- | Helper function that takes a filename and parses its content in the 'ErrorT' monad. parseFile :: FilePath -> ErrorT String IO [Statement] parseFile fpath = do result <- liftIO $ readFile fpath case (runParser mparser () fpath result) of Left err -> throwError (show err) Right st -> return st