fix: handle ANSI Terraform empty state
This commit is contained in:
parent
e8bcebf65f
commit
476259bc18
|
|
@ -110,13 +110,10 @@ func listTerraformStateResources(terraformDir string, environment []string) ([]s
|
||||||
return strings.Fields(string(state)), nil
|
return strings.Fields(string(state)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var ansiEscapeSequence = regexp.MustCompile(`\x1b\[[0-?]*[ -/]*[@-~]`)
|
||||||
|
|
||||||
func terraformNoStateFile(stderr []byte) bool {
|
func terraformNoStateFile(stderr []byte) bool {
|
||||||
for _, line := range strings.Split(string(stderr), "\n") {
|
return strings.Contains(strings.ToLower(ansiEscapeSequence.ReplaceAllString(string(stderr), "")), "no state file")
|
||||||
if strings.TrimSpace(line) == "No state file was found!" {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var destroyTalosVMs = func(terraformDir string, environment []string) error {
|
var destroyTalosVMs = func(terraformDir string, environment []string) error {
|
||||||
|
|
|
||||||
|
|
@ -911,11 +911,11 @@ func TestTerraformPlanPathIsAbsolute(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTerraformStateResourcesAllowsNoStateFile(t *testing.T) {
|
func TestTerraformStateResourcesAllowsANSINoStateFile(t *testing.T) {
|
||||||
original := runTerraformStateList
|
original := runTerraformStateList
|
||||||
t.Cleanup(func() { runTerraformStateList = original })
|
t.Cleanup(func() { runTerraformStateList = original })
|
||||||
runTerraformStateList = func(string, []string) ([]byte, []byte, error) {
|
runTerraformStateList = func(string, []string) ([]byte, []byte, error) {
|
||||||
return nil, []byte("No state file was found!\n"), errors.New("exit status 1")
|
return nil, []byte("\x1b[31mError:\x1b[0m \x1b[31mNO STATE\x1b[0m FILE was found!\n"), errors.New("exit status 1")
|
||||||
}
|
}
|
||||||
|
|
||||||
resources, err := listTerraformStateResources("terraform", nil)
|
resources, err := listTerraformStateResources("terraform", nil)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue