    module Propellor.Types.CmdLine where

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

    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 [ContainerCapability]
    	| GitPush Fd Fd
    	| Check
    	| Build
    	deriving (ReadPrec [CmdLine]
    ReadPrec CmdLine
    Int -> ReadS CmdLine
    ReadS [CmdLine]
    (Int -> ReadS CmdLine)
    -> ReadS [CmdLine]
    -> ReadPrec CmdLine
    -> ReadPrec [CmdLine]
    -> Read CmdLine
    forall a.
    (Int -> ReadS a)
    -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
    $creadsPrec :: Int -> ReadS CmdLine
    readsPrec :: Int -> ReadS CmdLine
    $creadList :: ReadS [CmdLine]
    readList :: ReadS [CmdLine]
    $creadPrec :: ReadPrec CmdLine
    readPrec :: ReadPrec CmdLine
    $creadListPrec :: ReadPrec [CmdLine]
    readListPrec :: ReadPrec [CmdLine]
    Read, Int -> CmdLine -> ShowS
    [CmdLine] -> ShowS
    CmdLine -> HostName
    (Int -> CmdLine -> ShowS)
    -> (CmdLine -> HostName) -> ([CmdLine] -> ShowS) -> Show CmdLine
    forall a.
    (Int -> a -> ShowS) -> (a -> HostName) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> CmdLine -> ShowS
    showsPrec :: Int -> CmdLine -> ShowS
    $cshow :: CmdLine -> HostName
    show :: CmdLine -> HostName
    $cshowList :: [CmdLine] -> ShowS
    showList :: [CmdLine] -> ShowS
    Show, CmdLine -> CmdLine -> Bool
    (CmdLine -> CmdLine -> Bool)
    -> (CmdLine -> CmdLine -> Bool) -> Eq CmdLine
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: CmdLine -> CmdLine -> Bool
    == :: CmdLine -> CmdLine -> Bool
    $c/= :: CmdLine -> CmdLine -> Bool
    /= :: CmdLine -> CmdLine -> Bool
    Eq)