module Potoki.Core.Transform.FileIO
where
import Potoki.Core.Prelude hiding (take, takeWhile, filter, drop)
import Potoki.Core.Transform.Basic
import Potoki.Core.Types
import qualified Data.ByteString as J
import qualified Data.Text.IO as Q
import qualified System.Directory as I
deleteFile :: Transform FilePath (Either IOException ())
deleteFile =
mapInIO (try . I.removeFile)
appendBytesToFile :: Transform (FilePath, ByteString) (Either IOException ())
appendBytesToFile =
mapInIO $ \ (path, bytes) ->
try $
withFile path AppendMode $ \ handleVal ->
J.hPut handleVal bytes
writeTextToFile :: Transform (FilePath, Text) (Either IOException ())
writeTextToFile =
mapInIO $ \ (path, text) ->
try $
Q.writeFile path text