func SetEnvironmentVariables()

in internal/exec/exec.go [147:171]


func SetEnvironmentVariables(cfg *handlersettings.HandlerSettings) (string, error) {
	var err error
	commandArgs := ""
	parameters := []handlersettings.ParameterDefinition{}
	if cfg.PublicSettings.Parameters != nil && len(cfg.PublicSettings.Parameters) > 0 {
		parameters = cfg.PublicSettings.Parameters
	}
	if cfg.ProtectedSettings.ProtectedParameters != nil && len(cfg.ProtectedSettings.ProtectedParameters) > 0 {
		parameters = append(parameters, cfg.ProtectedSettings.ProtectedParameters...)
	}

	for i := 0; i < len(parameters); i++ {
		name := parameters[i].Name
		value := parameters[i].Value
		if value != "" {
			if name != "" { // Named parameters are set as environmental setting
				err = os.Setenv(name, value)
			} else { // Unnamed parameters go to command args
				commandArgs += " " + value
			}
		}
	}

	return commandArgs, err // Return command args and the last error if any
}