module Mit.Directory
  ( cd,
    doesDirectoryExist,
  )
where

import Data.Text qualified as Text
import Mit.Monad
import Mit.Prelude
import System.Directory qualified as Directory

cd :: Text -> Mit r a -> Mit r a
cd :: forall r a. Text -> Mit r a -> Mit r a
cd Text
dir =
  forall r a. (forall v. IO v -> IO v) -> Mit r a -> Mit r a
with_ (forall a. FilePath -> IO a -> IO a
Directory.withCurrentDirectory (Text -> FilePath
Text.unpack Text
dir))

-- | Change directories (delimited by 'block').
doesDirectoryExist :: MonadIO m => Text -> m Bool
doesDirectoryExist :: forall (m :: * -> *). MonadIO m => Text -> m Bool
doesDirectoryExist =
  forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. FilePath -> IO Bool
Directory.doesDirectoryExist forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> FilePath
Text.unpack