summaryrefslogtreecommitdiff
path: root/src/Propellor/Property.hs
diff options
context:
space:
mode:
authorJoey Hess2015-10-10 15:09:47 -0400
committerJoey Hess2015-10-10 15:09:47 -0400
commitfa813945849f3e5998a61b1625f9bef20cd2fa13 (patch)
tree1200a7598abb5687e30279a342571fbcc2f900fb /src/Propellor/Property.hs
parentae380f085bc867f7405ef0a16c849864c6552e47 (diff)
propellor spin
Diffstat (limited to 'src/Propellor/Property.hs')
-rw-r--r--src/Propellor/Property.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs
index c7fc555f..471916d0 100644
--- a/src/Propellor/Property.hs
+++ b/src/Propellor/Property.hs
@@ -12,6 +12,7 @@ import "mtl" Control.Monad.RWS.Strict
import Propellor.Types
import Propellor.Info
+import Propellor.Exception
import Utility.Monad
-- | Constructs a Property, from a description and an action to run to
@@ -109,6 +110,13 @@ describe = setDesc
(==>) = flip describe
infixl 1 ==>
+-- | For when code running in the Propellor monad needs to ensure a
+-- Property.
+--
+-- This can only be used on a Property that has NoInfo.
+ensureProperty :: Property NoInfo -> Propellor Result
+ensureProperty = catchPropellor . propertySatisfy
+
-- | Makes a Property only need to do anything when a test succeeds.
check :: IO Bool -> Property i -> Property i
check c p = adjustPropertySatisfy p $ \satisfy -> ifM (liftIO c)