module SuperUserSpark.Deployer.Types where
import Import
import SuperUserSpark.Bake.Types
import SuperUserSpark.Check.Types
import SuperUserSpark.CoreTypes
data DeployAssignment = DeployAssignment
{ deployCardReference :: BakeCardReference
, deploySettings :: DeploySettings
} deriving (Show, Eq, Generic)
instance Validity DeployAssignment
data DeploySettings = DeploySettings
{ deploySetsReplaceLinks :: Bool
, deploySetsReplaceFiles :: Bool
, deploySetsReplaceDirectories :: Bool
, deployCheckSettings :: CheckSettings
} deriving (Show, Eq, Generic)
instance Validity DeploySettings
defaultDeploySettings :: DeploySettings
defaultDeploySettings =
DeploySettings
{ deploySetsReplaceLinks = False
, deploySetsReplaceFiles = False
, deploySetsReplaceDirectories = False
, deployCheckSettings = defaultCheckSettings
}
type SparkDeployer = ExceptT DeployError (ReaderT DeploySettings IO)
data DeployError
= DeployCheckError CheckError
| DeployError String
deriving (Show, Eq, Generic)
instance Validity DeployError
data PreDeployment
= Ready FilePath
FilePath
DeploymentKind
| AlreadyDone
| Error String
deriving (Show, Eq, Generic)
instance Validity PreDeployment