2014-10-31 18 views
6

Birçok kişi, ghci içine modülleri yüklemek için gerekli seçenekleri içerecek şekilde haskell projelerinde .ghci dosyaları içerir. İşte bir örnek: Ancak.ghci'den incele seçimini yapabilir mi?

:set -isrc -itest -iexamples -packagehspec2 

bütün bu seçenekleri, örneğin tekrarlamak birine sahiptir runhaskell aracılığıyla main içeren bir dosya çalıştırmak çalışırken:

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

runhaskell toplayalım için iyi bir yolu var mı .ghci dosyasından seçenekler?

cevap

4

runhaskell işini yapmanın herhangi bir yolunu bilmiyorum.

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

komut satırı argümanları geçmek istiyorsanız, çok çalışır: Ne yapmam GHCi sadece boru "main" olduğunu

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

Veya bir senaryoya paketleyebilirim:

$ ./run.lhs test/Spec.hs -m "behaves correct" 
: öylesine gibi kullanılabilir
#!/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