2014-10-31 3 views
6

많은 사람들이 자신의 haskell 프로젝트에 .ghci 파일을 포함시켜 모듈을 ghci에로드하는 데 필요한 옵션을 포함시킵니다. 다음은 예입니다 : 그러나실행할 수 있습니다. haskell .ghci에서 옵션을 선택합니까?

:set -isrc -itest -iexamples -packagehspec2 

모든 옵션, 예를 들어, 반복 하나가 runhaskell을 통해 main가 포함 된 파일을 실행하려고 할 때 :

runhaskell -isrc -itest -iexamples -packagehspec2 test/Spec.hs 

runhaskell 픽업 할 수있는 좋은 방법이 있나요을 .ghci 파일의 옵션은 무엇입니까?

답변

4

runhaskell을 만드는 방법에 대해 모르겠다.

$ echo main | ghci -v0 test/Spec.hs 

당신이 명령 줄 인수를 전달하려면, 너무 작동 : 내가하는 일은 ghci에 단지 파이프 "main"입니다

$ echo ':main -m "behaves correct"' | ghci -v0 test/Spec.hs 

또는 당신은 스크립트에서 마무리 할 수 ​​

$ ./run.lhs test/Spec.hs -m "behaves correct" 
: 그래서처럼 사용할 수 있습니다
#!/usr/bin/env runhaskell 
>import System.IO 
>import System.Environment 
>import System.Exit 
>import System.Process 
> 
>main :: IO() 
>main = do 
> source:args <- getArgs 
> (Just h, Nothing, Nothing, pid) <- createProcess (proc "ghci" ["-v0", source]) {std_in = CreatePipe} 
> hPutStr h ("import System.Environment\nSystem.Environment.withArgs " ++ show args ++ " main\n") 
> hClose h 
> waitForProcess pid >>= exitWith