propellor-1.3.2: property-based host configuration management in haskell

Safe HaskellNone
LanguageHaskell98

Propellor.Property

Synopsis

Documentation

propertyList :: Desc -> [Property] -> Property Source

Combines a list of properties, resulting in a single property that when run will run each property in the list in turn, and print out the description of each as it's run. Does not stop on failure; does propigate overall success/failure.

combineProperties :: Desc -> [Property] -> Property Source

Combines a list of properties, resulting in one property that ensures each in turn. Stops if a property fails.

before :: Property -> Property -> Property Source

Combines together two properties, resulting in one property that ensures the first, and if the first succeeds, ensures the second. The property uses the description of the first property.

flagFile :: Property -> FilePath -> Property Source

Makes a perhaps non-idempotent Property be idempotent by using a flag file to indicate whether it has run before. Use with caution.

(==>) :: Desc -> Property -> Property infixl 1 Source

check :: IO Bool -> Property -> Property Source

Makes a Property only need to do anything when a test succeeds.

fallback :: Property -> Property -> Property Source

Tries the first property, but if it fails to work, instead uses the second.

trivial :: Property -> Property Source

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.

withOS :: Desc -> (Maybe System -> Propellor Result) -> Property Source

Makes a property that is satisfied differently depending on the host's operating system.

Note that the operating system may not be declared for some hosts.

revert :: RevertableProperty -> RevertableProperty Source

Undoes the effect of a property.

adjustProperty :: Property -> (Propellor Result -> Propellor Result) -> Property Source

Changes the action that is performed to satisfy a property.

combineInfo :: (IsProp p, IsProp q) => p -> q -> Info Source

Combines the Info of two properties.

endAction :: Desc -> (Result -> Propellor Result) -> Propellor () Source

Registers an action that should be run at the very end,