22 lines
672 B
Haskell
22 lines
672 B
Haskell
import System.Plugins
|
|
import API
|
|
import System.Directory
|
|
|
|
main = do
|
|
#if __GLASGOW_HASKELL__ >= 604
|
|
tmpDir <- getTemporaryDirectory
|
|
#else
|
|
let tmpDir = "/tmp"
|
|
#endif
|
|
status <- make "../Plugin.hs" [ "-i../api", "-odir", tmpDir ]
|
|
o <- case status of
|
|
MakeSuccess _ o -> return o
|
|
MakeFailure e -> mapM_ putStrLn e >> error "didn't compile"
|
|
m_v <- load o ["../api"] [] "resource"
|
|
v <- case m_v of
|
|
LoadSuccess _ v -> return v
|
|
_ -> error "load failed"
|
|
putStrLn $ field v
|
|
mapM_ removeFile [(tmpDir ++ "/Plugin.hi"), (tmpDir ++ "/Plugin.o") ]
|
|
|