github.com/mponton/terratest@v0.44.0/modules/terraform/init.go (about)

     1  package terraform
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/mponton/terratest/modules/testing"
     7  )
     8  
     9  // Init calls terraform init and return stdout/stderr.
    10  func Init(t testing.TestingT, options *Options) string {
    11  	out, err := InitE(t, options)
    12  	if err != nil {
    13  		t.Fatal(err)
    14  	}
    15  	return out
    16  }
    17  
    18  // InitE calls terraform init and return stdout/stderr.
    19  func InitE(t testing.TestingT, options *Options) (string, error) {
    20  	args := []string{"init", fmt.Sprintf("-upgrade=%t", options.Upgrade)}
    21  
    22  	// Append reconfigure option if specified
    23  	if options.Reconfigure {
    24  		args = append(args, "-reconfigure")
    25  	}
    26  	// Append combination of migrate-state and force-copy to suppress answer prompt
    27  	if options.MigrateState {
    28  		args = append(args, "-migrate-state", "-force-copy")
    29  	}
    30  	// Append no-color option if needed
    31  	if options.NoColor {
    32  		args = append(args, "-no-color")
    33  	}
    34  
    35  	args = append(args, FormatTerraformBackendConfigAsArgs(options.BackendConfig)...)
    36  	args = append(args, FormatTerraformPluginDirAsArgs(options.PluginDir)...)
    37  	return RunTerraformCommandE(t, options, args...)
    38  }