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

Safe HaskellNone
LanguageHaskell98

Propellor.PropAccum

Synopsis

Documentation

host :: HostName -> Host Source

Starts accumulating the properties of a Host.

host "example.com"
	& someproperty
	! oldproperty
	& otherproperty

props :: PropList Source

Starts accumulating a list of properties.

propertyList "foo" $ props
	& someproperty
	! oldproperty
	& otherproperty

class PropAccum h where Source

Something that can accumulate properties.

Methods

(&) :: IsProp p => h -> p -> h infixl 1 Source

Adds a property.

Can add Properties and RevertableProperties

(&^) :: IsProp p => h -> p -> h infixl 1 Source

Like (&), but adds the property at the front of the list.

getProperties :: h -> [Property HasInfo] Source

(!) :: PropAccum h => h -> RevertableProperty -> h infixl 1 Source

Adds a property in reverted form.

propigateContainer :: PropAccum container => container -> Property HasInfo -> Property HasInfo Source

Adjust the provided Property, adding to its propertyChidren the properties of the provided container.

The Info of the propertyChildren is adjusted to only include info that should be propigated out to the Property.

DNS Info is propigated, so that eg, aliases of a PropAccum are reflected in the dns for the host where it runs.

PrivData Info is propigated, so that properties used inside a PropAccum will have the necessary PrivData available.