From d71f8caad4576ff55a147d7d7934c8bc436519de Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 14 Apr 2014 14:09:41 -0400 Subject: propellor spin --- Propellor/Property.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Propellor/Property.hs') diff --git a/Propellor/Property.hs b/Propellor/Property.hs index 95d17c05..5b1800ef 100644 --- a/Propellor/Property.hs +++ b/Propellor/Property.hs @@ -92,6 +92,19 @@ check c property = Property (propertyDesc property) $ ifM (liftIO c) , return NoChange ) +-- | Marks a Property as trivial. It can only return FailedChange or +-- NoChange. +-- +-- Useful when it's just as expensive to check if a change needs +-- to be made as it is to just idempotently assure the property is +-- satisfied. For example, chmodding a file. +trivial :: Property -> Property +trivial p = Property (propertyDesc p) $ do + r <- ensureProperty p + if r == MadeChange + then return NoChange + else return r + -- | Makes a property that is satisfied differently depending on the host's -- operating system. -- -- cgit v1.2.3