    module Propellor.Types.CmdLine where

    import Propellor.Types.OS
    import Propellor.Types.PrivData

    import System.Posix.Types

    -- | All the command line actions that propellor can perform.
    data CmdLine
    	= Run HostName
    	| Spin [HostName] (Maybe HostName)
    	| SimpleRun HostName
    	| Set PrivDataField Context
    	| Unset PrivDataField Context
    	| UnsetUnused
    	| Dump PrivDataField Context
    	| Edit PrivDataField Context
    	| ListFields
    	| AddKey String
    	| RmKey String
    	| Merge
    	| Serialized CmdLine
    	| Continue CmdLine
    	| Update (Maybe HostName)
    	| Relay HostName
    	| DockerInit HostName
    	| DockerChain HostName String
    	| ChrootChain HostName FilePath Bool Bool
    	| GitPush Fd Fd
    	| Check
    	| Build
    	deriving (Read, Show, Eq)