summaryrefslogtreecommitdiff
path: root/src/Propellor/Property.hs
diff options
context:
space:
mode:
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 55e688ab..884ee683 100644
--- a/src/Propellor/Property.hs
+++ b/src/Propellor/Property.hs
@@ -32,6 +32,7 @@ module Propellor.Property (
, makeChange
, noChange
, doNothing
+ , impossible
, endAction
-- * Property result checking
, UncheckedProperty
@@ -62,6 +63,7 @@ import Propellor.Types.ResultCheck
import Propellor.Types.MetaTypes
import Propellor.Types.Singletons
import Propellor.Info
+import Propellor.Message
import Propellor.EnsureProperty
import Utility.Exception
import Utility.Monad
@@ -364,6 +366,12 @@ noChange = return NoChange
doNothing :: SingI t => Property (MetaTypes t)
doNothing = mempty
+-- | In situations where it's not possible to provide a property that
+-- works, this can be used to make a property that always fails with an
+-- error message you provide.
+impossible :: SingI t => String -> Property (MetaTypes t)
+impossible msg = property "impossible" $ errorMessage msg
+
-- | Registers an action that should be run at the very end, after
-- propellor has checks all the properties of a host.
endAction :: Desc -> (Result -> Propellor Result) -> Propellor ()