diff --git a/src/config.cr b/src/config.cr index 63d2644..b01aecc 100644 --- a/src/config.cr +++ b/src/config.cr @@ -1,14 +1,13 @@ require "yaml" -require "./config/local" -require "./config/remote" -require "./config/deployment" +require "./config/*.cr" class Config YAML.mapping( version: String, - locals: Array(LocalConfig), - remotes: Array(RemoteConfig), + hosts: Array(HostConfig), + endpoints: Array(EndpointConfig), + filters: Array(FilterConfig), deployments: Array(DeploymentConfig) ) end diff --git a/src/config/deployment.cr b/src/config/deployment.cr index d353ef9..6cdcabd 100644 --- a/src/config/deployment.cr +++ b/src/config/deployment.cr @@ -1,37 +1,20 @@ require "yaml" -class DokkuMariadbDeploymentConfigSettings +class RunDeploymentConfig YAML.mapping( - name: String, - options: YAML::Any | Nil + name: String?, + run: RunDeploymentConfigSettings ) end -class DokkuAppDeploymentConfigSettings +class TransferDeploymentConfig YAML.mapping( - name: String, - options: YAML::Any | Nil - ) -end - -class DokkuMariadbDeploymentConfig - YAML.mapping( - local: String, - remote: String, - dokku_mariadb: DokkuMariadbDeploymentConfigSettings, - ) -end - -class DokkuAppDeploymentConfig - YAML.mapping( - local: String, - remote: String, - dokku_app: DokkuAppDeploymentConfigSettings, + name: String?, + transfer: TransferDeploymentConfigSettings ) end alias DeploymentConfig = - DokkuMariadbDeploymentConfig | - DokkuAppDeploymentConfig - + TransferDeploymentConfig | + RunDeploymentConfig diff --git a/src/config/endpoint.cr b/src/config/endpoint.cr new file mode 100644 index 0000000..737fee7 --- /dev/null +++ b/src/config/endpoint.cr @@ -0,0 +1,29 @@ + +require "yaml" + +class ScriptEndpointConfig + YAML.mapping( + name: String, + script: ScriptEndpointConfigSettings + ) +end + +class MysqlDumpEndpointConfig + YAML.mapping( + name: String, + mysql_dump: MysqlDumpEndpointConfigSettings + ) +end + +class DockerImageEndpointConfig + YAML.mapping( + name: String, + docker_image: DockerImageEndpointConfigSettings + ) +end + +alias EndpointConfig = + DockerImageEndpointConfig | + MysqlDumpEndpointConfig | + ScriptEndpointConfig + diff --git a/src/config/host.cr b/src/config/host.cr new file mode 100644 index 0000000..e69de29 diff --git a/src/config/local.cr b/src/config/local.cr index 2a26615..8b13789 100644 --- a/src/config/local.cr +++ b/src/config/local.cr @@ -1,47 +1 @@ -require "yaml" - -class ScriptLocalConfigSettings - YAML.mapping( - path: String - ) -end - -class MysqlDumpLocalConfigSettings - YAML.mapping( - path: String - ) -end - -class DockerImageLocalConfigSettings - YAML.mapping( - name: String - ) -end - -class ScriptLocalConfig - YAML.mapping( - name: String, - script: ScriptLocalConfigSettings - ) -end - -class MysqlDumpLocalConfig - YAML.mapping( - name: String, - mysql_dump: MysqlDumpLocalConfigSettings - ) -end - -class DockerImageLocalConfig - YAML.mapping( - name: String, - docker_image: DockerImageLocalConfigSettings - ) -end - -alias LocalConfig = - DockerImageLocalConfig | - MysqlDumpLocalConfig | - ScriptLocalConfig - diff --git a/src/config/settings.cr b/src/config/settings.cr new file mode 100644 index 0000000..817d6ce --- /dev/null +++ b/src/config/settings.cr @@ -0,0 +1,49 @@ + +require "yaml" + +class ScriptLocalConfigSettings + YAML.mapping( + path: String + ) +end + +class MysqlDumpLocalConfigSettings + YAML.mapping( + path: String + ) +end + +class DockerImageLocalConfigSettings + YAML.mapping( + name: String + ) +end + +class DokkuMariadbDeploymentConfigSettings + YAML.mapping( + name: String, + options: YAML::Any | Nil + ) +end + +class DokkuAppDeploymentConfigSettings + YAML.mapping( + name: String, + options: YAML::Any | Nil + ) +end + +class TransferDeploymentConfigSettings + YAML.mapping( + from: EndpointConfig, + to: EndpointConfig, + filters: Array(FilterConfig)? + ) +end + +class RunDeploymentConfigSettings + YAML.mapping( + from: EndpointConfig, + to: EndpointConfig, + ) +end