Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 24 additions & 8 deletions cmd/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,19 @@ var initCmd = &cobra.Command{
}

// Set the default configuration if applicable
defaultConfig := &config.DefaultConfig
if vmDriverConfig == "docker-desktop" {
defaultConfig = &config.DefaultConfig_Localhost
} else if vmDriverConfig == "colima" || vmDriverConfig == "docker" {
defaultConfig = &config.DefaultConfig_Full
}
if err := configHandler.SetDefault(*defaultConfig); err != nil {
return fmt.Errorf("Error setting default config: %w", err)
switch vmDriverConfig {
case "docker-desktop":
if err := configHandler.SetDefault(config.DefaultConfig_Localhost); err != nil {
return fmt.Errorf("Error setting default config: %w", err)
}
case "colima", "docker":
if err := configHandler.SetDefault(config.DefaultConfig_Full); err != nil {
return fmt.Errorf("Error setting default config: %w", err)
}
default:
if err := configHandler.SetDefault(config.DefaultConfig); err != nil {
return fmt.Errorf("Error setting default config: %w", err)
}
}

// Create the flag to config path mapping and set the configurations
Expand Down Expand Up @@ -223,6 +228,17 @@ var initCmd = &cobra.Command{
return fmt.Errorf("Error initializing: %w", err)
}

// Process context templates if they exist
blueprintHandler := controller.ResolveBlueprintHandler()
if err := blueprintHandler.ProcessContextTemplates(contextName, reset); err != nil {
return fmt.Errorf("Error processing context templates: %w", err)
}

// Reload blueprint after processing templates
if err := blueprintHandler.LoadConfig(reset); err != nil {
return fmt.Errorf("Error reloading blueprint config: %w", err)
}

// Set the environment variables internally in the process
if err := controller.SetEnvironmentVariables(); err != nil {
return fmt.Errorf("Error setting environment variables: %w", err)
Expand Down
6 changes: 3 additions & 3 deletions cmd/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,7 @@ func TestInitCmd(t *testing.T) {
t.Run("SetVMDriverError", func(t *testing.T) {
// Create a mock config handler that returns an error for vm.driver
mockConfigHandler := config.NewMockConfigHandler()
mockConfigHandler.SetContextValueFunc = func(key string, value interface{}) error {
mockConfigHandler.SetContextValueFunc = func(key string, value any) error {
if key == "vm.driver" {
return fmt.Errorf("failed to set vm driver")
}
Expand Down Expand Up @@ -691,7 +691,7 @@ func TestInitCmd(t *testing.T) {
t.Run("SetFlagError", func(t *testing.T) {
// Create a mock config handler that returns an error
mockConfigHandler := config.NewMockConfigHandler()
mockConfigHandler.SetContextValueFunc = func(key string, value interface{}) error {
mockConfigHandler.SetContextValueFunc = func(key string, value any) error {
return fmt.Errorf("failed to set config value for %s", key)
}
mockConfigHandler.GetContextFunc = func() string {
Expand Down Expand Up @@ -885,7 +885,7 @@ func TestInitCmd_PlatformFlag(t *testing.T) {
for _, tc := range platforms {
t.Run(tc.name, func(t *testing.T) {
// Use a real map-backed mock config handler
store := make(map[string]interface{})
store := make(map[string]any)
mockConfigHandler := config.NewMockConfigHandler()
mockConfigHandler.SetContextValueFunc = func(key string, value any) error {
store[key] = value
Expand Down
Loading
Loading