silently: Prevent or capture writing to stdout and other handles.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Prevent or capture writing to stdout, stderr, and other handles.


[Skip to Readme]

Properties

Versions 0.0.1, 0.0.2, 0.0.3, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.2, 1.2.0.1, 1.2.0.2, 1.2.3, 1.2.4, 1.2.4.1, 1.2.5, 1.2.5.1, 1.2.5.2, 1.2.5.3, 1.2.5.3, 1.2.5.4
Change log CHANGELOG.md
Dependencies base (>=4.3 && <5), deepseq, directory [details]
License BSD-3-Clause
Copyright (c) Trystan Spangler 2011
Author Trystan Spangler
Maintainer Sönke Hahn <soenkehahn@gmail.com>, Simon Hengel <sol@typeful.net>, Andreas Abel
Category System, Testing
Home page https://github.com/hspec/silently
Bug tracker https://github.com/hspec/silently/issues
Source repo head: git clone https://github.com/hspec/silently
Uploaded by AndreasAbel at 2022-08-21T17:13:44Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for silently-1.2.5.3

[back to package description]

Hackage version silently on Stackage Nightly Stackage LTS version Cabal build

silently

Silently is a package that allows you to run an IO action and prevent it from writing to stdout, or any other handle, by using silence. Or you can capture the output for yourself using capture.

For example, the program

 import System.IO.Silently

 main = do
   putStr "putStrLn: " >> putStrLn "puppies!"
   putStr "silenced: " >> silence (putStrLn "kittens!")
   putStrLn ""
   (captured, result) <- capture (putStr "wookies!" >> return 123)
   putStr "captured: " >> putStrLn captured
   putStr "returned: " >> putStrLn (show result)

will print:

 putStrLn: puppies!
 silenced:
 captured: wookies!
 returned: 123

Limitations

Capturing/silencing might not work as expected if the action uses the FFI or conceals output under unsafePerformIO or similar unsafe operations.

Examples: