{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE QuasiQuotes #-}
{-# OPTIONS_GHC
  -fno-warn-missing-signatures -fno-warn-unused-imports #-}

-- | All binaries in PATH.
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

-- | Helpful CD command.
cd
  :: (MonadIO m, CmdArg arg)
  => arg -> m ()
cd fp =
  case (toTextArg fp) of
    [] -> return ()
    (path:_) -> liftIO $ setCurrentDirectory (T.unpack path)

$(generateBinaries)