From 19a0a53469ad5288fa6688f5e140994a3be63f8e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 11 Nov 2017 21:33:26 -0400 Subject: Added Propellor.Property.impossible --- src/Propellor/Property.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Propellor/Property.hs') 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 () -- cgit v1.2.3