module Test.Verbosity(main) where import Development.Shake import Test.Type main = testBuild test $ do "in.txt" %> \out -> do a <- getVerbosity b <- withVerbosity Info getVerbosity writeFile' out $ unwords $ map show [a,b] "out.txt" %> \out -> do x <- getVerbosity ys <- withVerbosity Verbose $ do a <- getVerbosity need ["in.txt"] -- make sure the inherited verbosity does not get passed along b <- getVerbosity c <- quietly getVerbosity d <- fmap shakeVerbosity getShakeOptions pure [a,b,c,d] z <- getVerbosity writeFile' out $ unwords $ map show $ [x] ++ ys ++ [z] test build = do build ["out.txt","--clean"] assertContents "in.txt" "Info Info" assertContents "out.txt" "Info Verbose Verbose Error Info Info" build ["out.txt","--clean","--verbose"] assertContents "in.txt" "Verbose Info" assertContents "out.txt" "Verbose Verbose Verbose Error Verbose Verbose" build ["out.txt","--clean","--quiet"] assertContents "in.txt" "Warn Info" assertContents "out.txt" "Warn Verbose Verbose Error Warn Warn"