43 lines
1.1 KiB
Haskell
Raw Permalink Normal View History

module Load where
import API
import System.Plugins
--
-- load doesn't seem to behave nicely when using dirname on hier names
--
-- make, and maybe other places, use dirname to work out various names
-- from paths, which is invalid when hier names are used..
--
testload = do
s <- make "../Plugin1.hs" ["-i../api"]
o1 <- case s of
MakeSuccess _ o -> return o
MakeFailure e -> mapM_ putStrLn e >> fail "o1"
s <- make "../Sub/Plugin2.hs" ["-i../api","-hidir.."] -- !
o2 <- case s of
MakeSuccess _ o -> return o
MakeFailure e -> mapM_ putStrLn e >> fail "o2"
fc <- pdynload o1 ["..","../api"] [] "API.PluginAPI" "action"
case fc of
LoadFailure msg -> mapM_ putStrLn msg
LoadSuccess modul proc -> do
let ac :: API.PluginAPI; ac = proc
let s = proc 42
print s
-- will reqeust 'Plugin2', but module is actually 'Sub.Plugin2'
print o2
fc <- pdynload (o2) ["..","../api"] [] "API.PluginAPI" "action"
case fc of
LoadFailure msg -> mapM_ putStrLn msg
LoadSuccess modul proc -> do
let ac :: API.PluginAPI; ac = proc
let s = proc 42
print s