Safe Haskell | None |
---|
Propellor.Types
- data Host = Host {}
- data Info
- newtype Propellor p = Propellor {
- runWithHost :: ReaderT Host IO p
- data Property = Property {}
- data RevertableProperty = RevertableProperty Property Property
- class IsProp p where
- type Desc = String
- data Result
- = NoChange
- | MadeChange
- | FailedChange
- class ActionResult a where
- getActionResult :: a -> (String, ColorIntensity, Color)
- data CmdLine
- data PrivDataField
- type PrivData = String
- newtype Context = Context String
- anyContext :: Context
- data SshKeyType
- = SshRsa
- | SshDsa
- | SshEcdsa
- | SshEd25519
- module Propellor.Types.OS
- module Propellor.Types.Dns
Documentation
Everything Propellor knows about a system: Its hostname, properties and other info.
Instances
Propellor's monad provides read-only access to info about the host it's running on.
Constructors
Propellor | |
Fields
|
The core data type of Propellor, this represents a property that the system should have, and an action to ensure it has the property.
Constructors
Property | |
Fields
|
data RevertableProperty Source
A property that can be reverted.
Constructors
RevertableProperty Property Property |
Instances
Methods
describe :: p -> Desc -> pSource
Sets description.
requires :: p -> Property -> pSource
Indicates that the first property can only be satisfied once the second one is.
Instances
Constructors
NoChange | |
MadeChange | |
FailedChange |
class ActionResult a whereSource
Results of actions, with color.
Methods
getActionResult :: a -> (String, ColorIntensity, Color)Source
Instances
data PrivDataField Source
Note that removing or changing field names will break the serialized privdata files, so don't do that! It's fine to add new fields.
Context in which a PrivDataField is used.
Often this will be a domain name. For example, Context www.example.com could be used for the SSL cert for the web server serving that domain. Multiple hosts might use that privdata.
Use when a PrivDataField is not dependent on any paricular context.
module Propellor.Types.OS
module Propellor.Types.Dns