From 62dbf600fd334796a291950f643a974519ffacbe Mon Sep 17 00:00:00 2001
From: Michael Jerger <michael.jerger@meissa-gmbh.de>
Date: Tue, 7 Jan 2025 17:50:09 +0100
Subject: [PATCH] fix spec tg

---
 src/dda/build/terragrunt.clj        | 32 ++++++++++++++++-------------
 src/dda/build/terragrunt/domain.clj |  7 +++----
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/dda/build/terragrunt.clj b/src/dda/build/terragrunt.clj
index dfa9b4d..d576d62 100644
--- a/src/dda/build/terragrunt.clj
+++ b/src/dda/build/terragrunt.clj
@@ -1,42 +1,46 @@
 (ns dda.build.terragrunt
-  (:require [orchestra.core :refer [defn-spec]]
+  (:require [clojure.spec.alpha :as s]
+            [orchestra.core :refer [defn-spec]]
             [clojure.spec.test.alpha :as st]
             [cheshire.core :refer [parse-string]]
             [dda.build.devops :as d]
             [dda.build.terragrunt.domain :as domain]
             [dda.build.infrastructure :as i]))
 
-(st/instrument `clean-build-dir!)
-
 (def default
-  (merge d/default {:autoapply false
-                    :tg-output-filenname "tg-out.json"}))
+  (merge d/default
+         {:tg-output-filenname "tg-out.json"}))
+
+(s/def ::tg (s/merge
+             ::d/devops
+             (s/keys :opt-un [::domain/tg-output-filenname])))
+(s/def ::tf-out ::domain/tf-out)
 
 (defn-spec clean-build-dir! nil?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (i/execute! (domain/clean-build-dir-command config) config)))
 
 (defn-spec copy-terragrunt! nil?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (doseq [c (domain/copy-terragrunt-command config)]
       (i/execute! c config))))
 
 (defn-spec terragrunt-plan! nil?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (doseq [c (domain/terragrunt-plan-command config)]
       (i/execute! c config))))
 
 (defn-spec terragrunt-apply! nil?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (doseq [c (domain/terragrunt-apply-command config)]
       (i/execute! c config))))
 
 (defn-spec terragrunt-output! map?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (doseq [c (domain/terragrunt-output-command config)]
       (i/execute! c config))
@@ -44,13 +48,13 @@
                   (fn [k] (keyword (.toLowerCase k))))))
 
 (defn-spec terragrunt-destroy! nil?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (doseq [c (domain/terragrunt-destroy-command config)]
       (i/execute! c config))))
 
 (defn-spec plan! nil?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (clean-build-dir! config)
     (d/create-build-dir! config)
@@ -58,7 +62,7 @@
     (terragrunt-plan! config)))
 
 (defn-spec apply! map?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (clean-build-dir! config)
     (d/create-build-dir! config)
@@ -67,7 +71,7 @@
     (terragrunt-output! config)))
 
 (defn-spec destroy! nil?
-  [devops ::d/devops]
+  [devops ::tg]
   (let [config (merge default devops)]
     (clean-build-dir! config)
     (d/create-build-dir! config)
diff --git a/src/dda/build/terragrunt/domain.clj b/src/dda/build/terragrunt/domain.clj
index b2ec251..a157a97 100644
--- a/src/dda/build/terragrunt/domain.clj
+++ b/src/dda/build/terragrunt/domain.clj
@@ -21,12 +21,11 @@
   (s/keys :req-un [::out]))
 
 (s/def ::tg-output-filenname string?)
-(s/def ::autoapply boolean?)
 
 (s/def ::config
-  (s/keys :req-un [::d/name ::d/stage ::d/project-root-path ::d/build-dir-name ::d/debug 
-                   ::d/dry-run ::d/module ::tg-output-filenname ::autoapply]
-          :opt-un []))
+  (s/merge ::d/devops
+           (s/keys :req-un [::tg-output-filenname]
+                   :opt-un [])))
 
 (defn-spec clean-build-dir-command seq?
   [config ::config]