diff --git a/internal/app/dbtcloud-terraforming/cmd/generate_test.go b/internal/app/dbtcloud-terraforming/cmd/generate_test.go index cf2a529..4b21b83 100644 --- a/internal/app/dbtcloud-terraforming/cmd/generate_test.go +++ b/internal/app/dbtcloud-terraforming/cmd/generate_test.go @@ -41,9 +41,6 @@ var ( "c": "d", "e": "f", } - - // TODO see if we want to keep this - dbtCloudTestAccountID = "31" ) func TestGenerate_writeAttrLine(t *testing.T) { @@ -80,7 +77,8 @@ func TestGenerate_writeAttrLine(t *testing.T) { } func TestGenerate_ResourceNotSupported(t *testing.T) { - output, err := executeCommandC(rootCmd, "--terraform-binary-path", "/opt/homebrew/bin/terraform", "--terraform-install-path", "/Users/bper/dev/dbtcloud-terraforming", "generate", "--resource-types", "notreal") + path := viper.GetString("terraforming-install-path") + output, err := executeCommandC(rootCmd, "--terraform-binary-path", "/opt/homebrew/bin/terraform", "--terraform-install-path", path, "generate", "--resource-types", "notreal") assert.Nil(t, err) assert.Equal(t, output, `"notreal" is not yet supported for automatic generation`) @@ -155,7 +153,10 @@ func TestResourceGeneration(t *testing.T) { resourceTypes = []string{} listLinkedResources = []string{} - output, err = executeCommandC(rootCmd, "--terraform-binary-path", "/opt/homebrew/bin/terraform", "--terraform-install-path", "/Users/bper/dev/dbtcloud-terraforming", "generate", "--resource-types", tc.resourceType, "--account", dbtCloudTestAccountID) + path := viper.GetString("terraforming-install-path") + output, err = executeCommandC(rootCmd, "--terraform-binary-path", "/opt/homebrew/bin/terraform", + "--terraform-install-path", path, "generate", "--resource-types", + tc.resourceType, "--account", viper.GetString("account")) if err != nil { log.Fatal(err) } diff --git a/internal/app/dbtcloud-terraforming/cmd/import_test.go b/internal/app/dbtcloud-terraforming/cmd/import_test.go index 9e54113..2dbe8ff 100644 --- a/internal/app/dbtcloud-terraforming/cmd/import_test.go +++ b/internal/app/dbtcloud-terraforming/cmd/import_test.go @@ -81,7 +81,8 @@ func TestResourceImport(t *testing.T) { resourceTypes = []string{} listLinkedResources = []string{} listFilterProjects = []int{} - argsGenerate := []string{"--terraform-binary-path", "/opt/homebrew/bin/terraform", "--terraform-install-path", "/Users/bper/dev/dbtcloud-terraforming", "generate", "--resource-types", tc.resourceTypes, "--linked-resource-types", tc.listLinkedResources, "--account", dbtCloudTestAccountID} + path := viper.GetString("terraforming-install-path") + argsGenerate := []string{"--terraform-binary-path", "/opt/homebrew/bin/terraform", "--terraform-install-path", path, "generate", "--resource-types", tc.resourceTypes, "--linked-resource-types", tc.listLinkedResources, "--account", viper.GetString("account")} combinedArgsGenerate := append(argsGenerate, projectsParam...) outputGenerate, err := executeCommandC(rootCmd, combinedArgsGenerate...) if err != nil { @@ -92,7 +93,7 @@ func TestResourceImport(t *testing.T) { resourceTypes = []string{} listLinkedResources = []string{} listFilterProjects = []int{} - argsImport := []string{"--terraform-binary-path", "/opt/homebrew/bin/terraform", "--terraform-install-path", "/Users/bper/dev/dbtcloud-terraforming", "import", "--modern-import-block", "--resource-types", tc.resourceTypes, "--linked-resource-types", tc.listLinkedResources, "--account", dbtCloudTestAccountID} + argsImport := []string{"--terraform-binary-path", "/opt/homebrew/bin/terraform", "--terraform-install-path", path, "import", "--modern-import-block", "--resource-types", tc.resourceTypes, "--linked-resource-types", tc.listLinkedResources, "--account", viper.GetString("account")} combinedArgsImport := append(argsImport, projectsParam...) outputImport, err = executeCommandC(rootCmd, combinedArgsImport...) if err != nil { diff --git a/internal/app/dbtcloud-terraforming/cmd/root.go b/internal/app/dbtcloud-terraforming/cmd/root.go index d123f6f..82967c4 100644 --- a/internal/app/dbtcloud-terraforming/cmd/root.go +++ b/internal/app/dbtcloud-terraforming/cmd/root.go @@ -8,7 +8,7 @@ import ( ) var log = logrus.New() -var zoneID, hostURL, apiToken, accountID, terraformInstallPath, terraformBinaryPath string +var zoneID, hostURL, apiToken, accountID, terraformInstallPath, terraformingInstallPath, terraformBinaryPath string var listFilterProjects []int var verbose, useModernImportBlock bool var dbtCloudClient *dbtcloud.DbtCloudHTTPClient @@ -75,6 +75,14 @@ func init() { log.Fatal(err) } + rootCmd.PersistentFlags().StringVarP(&terraformingInstallPath, "terraforming-install-path", "", "", "Path to installation [env var: TERRAFORMING_INSTALL_PATH]") + if err = viper.BindPFlag("terraforming-install-path", rootCmd.PersistentFlags().Lookup("terraforming-install-path")); err != nil { + log.Fatal(err) + } + if err = viper.BindEnv("terraforming-install-path", "TERRAFORMING_INSTALL_PATH"); err != nil { + log.Fatal(err) + } + rootCmd.PersistentFlags().IntSliceVarP(&listFilterProjects, "projects", "p", []int{}, "Project IDs to limit the import for. Imports all projects if not set. [env var: DBT_CLOUD_PROJECTS]") if err = viper.BindPFlag("projects", rootCmd.PersistentFlags().Lookup("projects")); err != nil { log.Fatal(err)