in internal/pkg/deploy/cloudformation/env.go [64:99]
func (cf CloudFormation) DryRunEnvironment(env *types.EnvironmentInput) (string, error) {
stackConfig := stack.NewEnvStackConfig(env, cf.box)
template, err := stackConfig.Template()
if err != nil {
return "", fmt.Errorf("template creation: %w", err)
}
templateFileDir := filepath.Join(".", templateFileDirectoryName)
if _, err := os.Stat(templateFileDir); os.IsNotExist(err) {
err = os.Mkdir(templateFileDir, os.ModePerm)
if err != nil {
return "", fmt.Errorf("could not create directory %s: %w", templateFileDir, err)
}
}
templateFileAbsDir, err := filepath.Abs(templateFileDir)
if err != nil {
return "", fmt.Errorf("could not get absolute path for directory %s: %w", templateFileDir, err)
}
templateFilePath := filepath.Join(templateFileAbsDir, stackConfig.StackName()+"-template.yaml")
f, err := os.Create(templateFilePath)
if err != nil {
return "", err
}
defer f.Close()
_, err = f.WriteString(template)
if err != nil {
return "", err
}
f.Sync()
return templateFilePath, nil
}