module Hix.Managed.Path where
import Path (Abs, Dir, Path)
import Path.IO (getCurrentDir)
import Hix.Data.Monad (M)
import Hix.Monad (tryIOM)
rootOrCwd ::
Maybe (Path Abs Dir) ->
M (Path Abs Dir)
rootOrCwd :: Maybe (Path Abs Dir) -> M (Path Abs Dir)
rootOrCwd =
M (Path Abs Dir)
-> (Path Abs Dir -> M (Path Abs Dir))
-> Maybe (Path Abs Dir)
-> M (Path Abs Dir)
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (IO (Path Abs Dir) -> M (Path Abs Dir)
forall a. IO a -> M a
tryIOM IO (Path Abs Dir)
forall (m :: * -> *). MonadIO m => m (Path Abs Dir)
getCurrentDir) Path Abs Dir -> M (Path Abs Dir)
forall a. a -> M a
forall (f :: * -> *) a. Applicative f => a -> f a
pure