Skip to content

Commit 8c65e47

Browse files
committed
passed on devspace vars to plugin env
1 parent 1d26277 commit 8c65e47

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

cmd/root.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,9 @@ Additional run commands:
294294
rootCmd.AddCommand(NewPurgeCmd(f, globalFlags, rawConfig))
295295

296296
// Add plugin commands
297+
if rawConfig != nil && rawConfig.OriginalRawConfig != nil {
298+
plugin.AddDevspaceVarsToPluginEnv(rawConfig.OriginalRawConfig["vars"])
299+
}
297300
plugin.AddPluginCommands(rootCmd, plugins, "")
298301
variable.AddPredefinedVars(plugins)
299302
return rootCmd

pkg/devspace/plugin/plugin.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/ghodss/yaml"
99
"github.com/loft-sh/devspace/pkg/devspace/config/constants"
1010
"github.com/loft-sh/devspace/pkg/util/log"
11+
"sync"
1112

1213
"io"
1314
"io/ioutil"
@@ -35,6 +36,9 @@ func init() {
3536
}
3637
}
3738

39+
var devspaceVars = map[string]string{}
40+
var devspaceVarsOnce sync.Once
41+
3842
type NewestVersionError struct {
3943
version string
4044
}
@@ -346,6 +350,23 @@ func Decode(encoded string) ([]byte, error) {
346350
return encoding.DecodeString(encoded)
347351
}
348352

353+
func AddDevspaceVarsToPluginEnv(vars interface{}) {
354+
devspaceVarsOnce.Do(func() {
355+
if vars != nil {
356+
devspaceVar, isMapStringInterface := vars.(map[string]interface{})
357+
if isMapStringInterface {
358+
for key, value := range devspaceVar {
359+
// only map[string]string will be processed, map[string]Variable will be skipped
360+
vString, isString := value.(string)
361+
if isString {
362+
devspaceVars[key] = vString
363+
}
364+
}
365+
}
366+
}
367+
})
368+
}
369+
349370
func AddPluginCommands(base *cobra.Command, plugins []Metadata, subCommand string) {
350371
for _, plugin := range plugins {
351372
pluginFolder := plugin.PluginFolder
@@ -364,7 +385,7 @@ func AddPluginCommands(base *cobra.Command, plugins []Metadata, subCommand strin
364385
newArgs := []string{}
365386
newArgs = append(newArgs, md.BaseArgs...)
366387
newArgs = append(newArgs, args...)
367-
return CallPluginExecutable(filepath.Join(pluginFolder, PluginBinary), newArgs, nil, os.Stdout)
388+
return CallPluginExecutable(filepath.Join(pluginFolder, PluginBinary), newArgs, devspaceVars, os.Stdout)
368389
},
369390
// This passes all the flags to the subcommand.
370391
DisableFlagParsing: true,

0 commit comments

Comments
 (0)