summaryrefslogtreecommitdiff
path: root/src/Script/Shell.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Script/Shell.hs')
-rw-r--r--src/Script/Shell.hs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Script/Shell.hs b/src/Script/Shell.hs
index 91bdcb0..fbb92af 100644
--- a/src/Script/Shell.hs
+++ b/src/Script/Shell.hs
@@ -154,6 +154,13 @@ executeCommand sei@ShellExecInfo {..} st pstdin pstdout pstderr scmd@ShellComman
executeCommandProcess :: ShellExecInfo -> ShellState -> Handle -> Handle -> Handle -> [ Text ] -> Text -> TestRun ( TestRun ProcessStatus, ShellState )
executeCommandProcess ShellExecInfo {..} st@ShellState {..} pstdin pstdout pstderr args = \case
+ "pwd"
+ | [] <- args -> do
+ liftIO $ hPutStrLn pstdout shellWorkingDirectory
+ return ( return (Exited ExitSuccess), st )
+ | otherwise -> do
+ liftIO $ hPutStrLn pstderr $ "pwd: too many arguments"
+ return ( return (Exited (ExitFailure (-1))), st )
cmd -> liftIO $ do
(_, _, _, phandle) <- createProcess_ "shell"
(proc (T.unpack cmd) (map T.unpack args))