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+
3842type 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+
349370func 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