in internal/meta/base_meta.go [757:796]
func (meta *baseMeta) initTF(ctx context.Context) error {
meta.Logger().Info("Init Terraform")
execPath, err := FindTerraform(ctx)
if err != nil {
return fmt.Errorf("error finding a terraform exectuable: %w", err)
}
meta.Logger().Info("Found terraform binary", "path", execPath)
newTF := func(dir string) (*tfexec.Terraform, error) {
tf, err := tfexec.NewTerraform(dir, execPath)
if err != nil {
return nil, fmt.Errorf("error running NewTerraform: %w", err)
}
if v, ok := os.LookupEnv("TF_LOG_PATH"); ok {
// #nosec G104
tf.SetLogPath(v)
}
if v, ok := os.LookupEnv("TF_LOG"); ok {
// #nosec G104
tf.SetLog(v)
}
return tf, nil
}
tf, err := newTF(meta.outdir)
if err != nil {
return fmt.Errorf("failed to init terraform: %w", err)
}
meta.tf = tf
for _, importDir := range meta.importBaseDirs {
tf, err := newTF(importDir)
if err != nil {
return fmt.Errorf("failed to init terraform: %w", err)
}
meta.importTFs = append(meta.importTFs, tf)
}
return nil
}