summaryrefslogtreecommitdiff
path: root/src/Propellor/Property.hs
diff options
context:
space:
mode:
authorJoey Hess2016-06-19 13:14:42 -0400
committerJoey Hess2016-06-19 13:14:42 -0400
commitc017788490caddd222c3a977ad32ec00a61a266e (patch)
tree8d2e5e83159353950023161b4c79ac4792f6d856 /src/Propellor/Property.hs
parentf33b0948218e7b3d510f6bf37785cda107a630d8 (diff)
parent0e09a8cfdffb2cd99cf86c04bade4a9261101a2c (diff)
Merge remote-tracking branch 'spwhitton/firejail'
Diffstat (limited to 'src/Propellor/Property.hs')
-rw-r--r--src/Propellor/Property.hs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs
index af36ed58..fe314941 100644
--- a/src/Propellor/Property.hs
+++ b/src/Propellor/Property.hs
@@ -16,6 +16,7 @@ module Propellor.Property (
, check
, fallback
, revert
+ , applyToList
-- * Property descriptions
, describe
, (==>)
@@ -53,7 +54,8 @@ import System.Posix.Files
import qualified Data.Hash.MD5 as MD5
import Data.List
import Control.Applicative
-import Prelude
+import Data.Foldable (Foldable, foldr1)
+import Prelude hiding (Foldable)
import Propellor.Types
import Propellor.Types.Core
@@ -341,6 +343,14 @@ unsupportedOS' = go =<< getOS
revert :: RevertableProperty setup undo -> RevertableProperty undo setup
revert (RevertableProperty p1 p2) = RevertableProperty p2 p1
+-- | Apply a property to each element of a list.
+applyToList
+ :: (Foldable t, Functor t, IsProp p, Combines p p, p ~ CombinedType p p)
+ => (b -> p)
+ -> t b
+ -> p
+prop `applyToList` xs = Data.Foldable.foldr1 before $ prop <$> xs
+
makeChange :: IO () -> Propellor Result
makeChange a = liftIO a >> return MadeChange