From 6d2e47c2443e09f1e3fc65ba81bde3c41bc8f8e1 Mon Sep 17 00:00:00 2001 From: "Glenn Y. Rolland" Date: Sat, 11 Apr 2020 21:36:06 +0200 Subject: [PATCH] Finalize types for parsing v3 format --- src/config/deployment.cr | 1 + src/config/deployment_settings.cr | 17 +++++++++++ src/config/endpoint.cr | 25 +++++++++++++++- src/config/endpoint_settings.cr | 37 +++++++++++++++++++++++ src/config/filter.cr | 22 ++++++++++++++ src/config/filter_settings.cr | 9 ++++++ src/config/host.cr | 22 ++++++++++++++ src/config/host_settings.cr | 9 ++++++ src/config/local.cr | 1 - src/config/remote.cr | 19 ------------ src/config/settings.cr | 49 ------------------------------- 11 files changed, 141 insertions(+), 70 deletions(-) create mode 100644 src/config/deployment_settings.cr create mode 100644 src/config/endpoint_settings.cr create mode 100644 src/config/filter.cr create mode 100644 src/config/filter_settings.cr create mode 100644 src/config/host_settings.cr delete mode 100644 src/config/local.cr delete mode 100644 src/config/remote.cr delete mode 100644 src/config/settings.cr diff --git a/src/config/deployment.cr b/src/config/deployment.cr index 6cdcabd..469968b 100644 --- a/src/config/deployment.cr +++ b/src/config/deployment.cr @@ -1,5 +1,6 @@ require "yaml" +require "./deployment_settings" class RunDeploymentConfig YAML.mapping( diff --git a/src/config/deployment_settings.cr b/src/config/deployment_settings.cr new file mode 100644 index 0000000..82fdc46 --- /dev/null +++ b/src/config/deployment_settings.cr @@ -0,0 +1,17 @@ + +require "yaml" + +class TransferDeploymentConfigSettings + YAML.mapping( + src: String, + dest: String, + filters: Array(String)? + ) +end + +class RunDeploymentConfigSettings + YAML.mapping( + src: String, + dest: String, + ) +end diff --git a/src/config/endpoint.cr b/src/config/endpoint.cr index 737fee7..c7648a9 100644 --- a/src/config/endpoint.cr +++ b/src/config/endpoint.cr @@ -1,9 +1,28 @@ require "yaml" +require "./endpoint_settings" + + +class DokkuMariadbEndpointConfig + YAML.mapping( + name: String, + host: String, + dokku_mariadb: DokkuMariadbEndpointConfigSettings + ) +end + +class DokkuAppEndpointConfig + YAML.mapping( + name: String, + host: String, + dokku_app: DokkuAppEndpointConfigSettings + ) +end class ScriptEndpointConfig YAML.mapping( name: String, + host: String, script: ScriptEndpointConfigSettings ) end @@ -11,6 +30,7 @@ end class MysqlDumpEndpointConfig YAML.mapping( name: String, + host: String, mysql_dump: MysqlDumpEndpointConfigSettings ) end @@ -18,6 +38,7 @@ end class DockerImageEndpointConfig YAML.mapping( name: String, + host: String, docker_image: DockerImageEndpointConfigSettings ) end @@ -25,5 +46,7 @@ end alias EndpointConfig = DockerImageEndpointConfig | MysqlDumpEndpointConfig | - ScriptEndpointConfig + ScriptEndpointConfig | + DokkuAppEndpointConfig | + DokkuMariadbEndpointConfig diff --git a/src/config/endpoint_settings.cr b/src/config/endpoint_settings.cr new file mode 100644 index 0000000..27e4309 --- /dev/null +++ b/src/config/endpoint_settings.cr @@ -0,0 +1,37 @@ + +require "yaml" + +class DokkuMariadbEndpointConfigSettings + YAML.mapping( + name: String + ) +end + +class DokkuAppEndpointConfigSettings + YAML.mapping( + name: String + ) +end + +class DockerImageEndpointConfigSettings + YAML.mapping( + tag: { + type: String, + nilable: false, + default: "latest" + } + ) +end + +class MysqlDumpEndpointConfigSettings + YAML.mapping( + path: String + ) +end + +class ScriptEndpointConfigSettings + YAML.mapping( + path: String + ) +end + diff --git a/src/config/filter.cr b/src/config/filter.cr new file mode 100644 index 0000000..cb81622 --- /dev/null +++ b/src/config/filter.cr @@ -0,0 +1,22 @@ + +require "yaml" +require "./filter_settings" + + +class DualFilterConfig + YAML.mapping( + name: String, + dual: DualFilterConfigSettings + ) +end + +class MonoFilterConfig + YAML.mapping( + name: String, + cmd: String + ) +end + +alias FilterConfig = + MonoFilterConfig | + DualFilterConfig diff --git a/src/config/filter_settings.cr b/src/config/filter_settings.cr new file mode 100644 index 0000000..fc2be9d --- /dev/null +++ b/src/config/filter_settings.cr @@ -0,0 +1,9 @@ + +require "yaml" + +class DualFilterConfigSettings + YAML.mapping( + cmd_in: String, + cmd_out: String, + ) +end diff --git a/src/config/host.cr b/src/config/host.cr index e69de29..56de618 100644 --- a/src/config/host.cr +++ b/src/config/host.cr @@ -0,0 +1,22 @@ + +require "yaml" +require "./host_settings" + +class LocalHostConfig + YAML.mapping( + name: String, + localhost: Hash(String, YAML::Any) + ) +end + + +class SshHostConfig + YAML.mapping( + name: String, + ssh: SshHostConfigSettings + ) +end + +alias HostConfig = + LocalHostConfig | + SshHostConfig diff --git a/src/config/host_settings.cr b/src/config/host_settings.cr new file mode 100644 index 0000000..703fc9a --- /dev/null +++ b/src/config/host_settings.cr @@ -0,0 +1,9 @@ + +require "yaml" + +class SshHostConfigSettings + YAML.mapping( + user: String, + host: String + ) +end diff --git a/src/config/local.cr b/src/config/local.cr deleted file mode 100644 index 8b13789..0000000 --- a/src/config/local.cr +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/config/remote.cr b/src/config/remote.cr deleted file mode 100644 index 477ed4f..0000000 --- a/src/config/remote.cr +++ /dev/null @@ -1,19 +0,0 @@ - -require "yaml" - -class DokkuRemoteConfigSettings - YAML.mapping( - user: String, - host: String - ) -end - -class DokkuRemoteConfig - YAML.mapping( - name: String, - dokku: DokkuRemoteConfigSettings - ) -end - -alias RemoteConfig = - DokkuRemoteConfig diff --git a/src/config/settings.cr b/src/config/settings.cr deleted file mode 100644 index 817d6ce..0000000 --- a/src/config/settings.cr +++ /dev/null @@ -1,49 +0,0 @@ - -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