{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE QuasiQuotes #-}
{-# OPTIONS_GHC
-fno-warn-missing-signatures -fno-warn-unused-imports #-}
module Data.Conduit.Shell.PATH where
import Control.Monad
import Control.Monad.IO.Class
import Data.Conduit.Shell.Process
import Data.Conduit.Shell.TH
import Data.Conduit.Shell.Variadic
import Data.List
import qualified Data.Text as T (unpack)
import Prelude
import System.Directory
cd
:: (MonadIO m, CmdArg arg)
=> arg -> m ()
cd :: forall (m :: * -> *) arg. (MonadIO m, CmdArg arg) => arg -> m ()
cd arg
fp =
case (arg -> [Text]
forall a. CmdArg a => a -> [Text]
toTextArg arg
fp) of
[] -> () -> m ()
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
(Text
path:[Text]
_) -> IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ FilePath -> IO ()
setCurrentDirectory (Text -> FilePath
T.unpack Text
path)
$