diff --git a/mage_helpers/cdk.go b/mage_helpers/cdk.go index 96c8937b1cf5b66047ada29c74cf1c71b5d13931..6f0ce01bd47f03023d6ec230f5c3345809ca730e 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`,