From 953df079c3f84b5ed8880004050963cfd2d436b1 Mon Sep 17 00:00:00 2001
From: Johan de Klerk <johan@shiplogic.com>
Date: Thu, 3 Nov 2022 13:29:25 +0200
Subject: [PATCH] Added cdk watch

---
 mage_helpers/cdk.go | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/mage_helpers/cdk.go b/mage_helpers/cdk.go
index 96c8937..6f0ce01 100644
--- a/mage_helpers/cdk.go
+++ b/mage_helpers/cdk.go
@@ -101,6 +101,39 @@ func CDKDeploy(cdkDir string, env string, stack string, exclusively bool, local
 	return nil
 }
 
+func CDKWatch(cdkDir string, env string, stack string, exclusively bool, profile string) error {
+	commandArgs := []string{
+		`watch`,
+		fmt.Sprintf(`"%s"`, stack),
+		`-c`,
+		fmt.Sprintf(`config=%v`, env),
+	}
+
+	if exclusively {
+		commandArgs = append(commandArgs, `-c`,
+			fmt.Sprintf(`exclusively="%v"`, stack))
+	}
+
+	commandArgs = append(commandArgs, fmt.Sprintf(`--profile=%v`, profile))
+
+	commandArgs = append(commandArgs,
+		`--require-approval=never`,
+		fmt.Sprintf(`--exclusively=%v`, strconv.FormatBool(exclusively)))
+
+	cmd := BuildCommand("cdk", commandArgs)
+	cmd.Dir = cdkDir
+	cmd.Stdout = os.Stdout
+	cmd.Stderr = os.Stderr
+
+	fmt.Printf("==================%v==================\n", stack)
+	err := cmd.Run()
+	if err != nil {
+		return err
+	}
+	fmt.Printf("==================%v==================\n\n\n\n", stack)
+	return nil
+}
+
 func CDKSynthAll(cdkDir string, env string, profile string, local bool) error {
 	commandArgs := []string{
 		`synth`,
-- 
GitLab