-- | -- Module : Sed -- Copyright : (c) Vitaliy Rkavishnikov -- License : BSD-style (see the file LICENSE) -- -- Maintainer : virukav@gmail.com -- Stability : experimental -- Portability : non-portable -- -- This module provides functions to execute the sed script -- module Hsed.Sed ( execScript , execScript_ , SedScript ) where import Control.Monad (when) import qualified Control.Monad.State as S import Data.List (isPrefixOf) import qualified Data.ByteString.Char8 as B import Hsed.StreamEd (runSed) import Hsed.SedState type SedScript = String -- | Execute the sed script and print the output to ByteString execScript :: [FilePath] -> SedScript -> IO B.ByteString execScript files script = do env <- runSed files script (initEnv {useMemSpace_ = True}) return $ memorySpace_ env -- | Execute the sed script and print the result to stdout execScript_ :: [FilePath] -> SedScript -> IO () execScript_ files script = do runSed files script initEnv return ()