Ticket #4332: redir.script

File redir.script, 977 bytes (added by claus, 5 years ago)

GHCi script defining :redir command to redirect command output (fix layout)

Line 
1:{
2:def redir \varcmd -> case Data.List.break Data.Char.isSpace varcmd of
3                        (var,_:cmd) -> return $ Data.List.unlines
4                          [":set -fno-print-bind-result"
5                          ,"tmp <- System.Directory.getTemporaryDirectory"
6                          ,"(f,h) <- System.IO.openTempFile tmp \"ghci\""
7                          ,"sto <- GHC.Handle.hDuplicate System.IO.stdout"
8                          ,"GHC.Handle.hDuplicateTo h System.IO.stdout"
9                          ,"System.IO.hClose h"
10                          ,"System.IO.hPutStrLn System.IO.stdout \"-- logging GHCi stdout\""
11                          ,cmd
12                          ,"GHC.Handle.hDuplicateTo sto System.IO.stdout"
13                          ,"let readFileNow f = readFile f >>= \\t->length t `seq` return t"
14                          ,var++" <- readFileNow f"
15                          ,"System.Directory.removeFile f"]
16:}