38 lines
1.1 KiB
Haskell
38 lines
1.1 KiB
Haskell
|
|
import System.Plugins
|
|
|
|
import System.Directory
|
|
|
|
a = "Foo.hs" -- user code
|
|
b = "Bar.hs" -- more user code
|
|
z = "Stub.hs" -- and a stub
|
|
|
|
main = do
|
|
status <- makeWith a z []
|
|
s <- case status of
|
|
MakeFailure e -> mapM_ putStrLn e >> error "failed"
|
|
MakeSuccess n s -> print n >> return s
|
|
|
|
status <- makeWith b z []
|
|
s' <- case status of
|
|
MakeFailure e -> mapM_ putStrLn e >> error "failed"
|
|
MakeSuccess n s -> print n >> return s
|
|
|
|
-- shouldn't need to remerge (a,z)
|
|
status <- makeWith a z []
|
|
t <- case status of
|
|
MakeFailure e -> mapM_ putStrLn e >> error "failed"
|
|
MakeSuccess n s -> print n >> return s
|
|
|
|
-- shouldn't need to remerge (b,z)
|
|
status <- makeWith b z []
|
|
t' <- case status of
|
|
MakeFailure e -> mapM_ putStrLn e >> error "failed"
|
|
MakeSuccess n s -> print n >> return s
|
|
|
|
print $ s /= s' -- test we got unique modules
|
|
print $ t /= t' -- test we got unique modules
|
|
|
|
mapM_ makeCleaner [s,s']
|
|
|