MCPcopy Index your code
hub / github.com/cloudquery/cloudquery / filterPluginEnv

Function filterPluginEnv

cli/cmd/sync.go:574–608  ·  view source on GitHub ↗
(environ []string, pluginName, kind string)

Source from the content-addressed store, hash-verified

572}
573
574func filterPluginEnv(environ []string, pluginName, kind string) []string {
575 pluginEnv := make([]string, 0, len(environ))
576 cleanName := strings.ReplaceAll(pluginName, "-", "_")
577 prefix := strings.ToUpper("__" + kind + "_" + cleanName + "__")
578
579 globalEnvironmentVariables := map[string]string{}
580 specificEnvironmentVariables := map[string]bool{}
581
582 for _, v := range environ {
583 switch {
584 case strings.HasPrefix(v, "CLOUDQUERY_API_KEY="),
585 strings.HasPrefix(v, "AWS_"):
586 k := getEnvKey(v)
587 globalEnvironmentVariables[k] = v
588 case strings.HasPrefix(v, "_CQ_TEAM_NAME="),
589 strings.HasPrefix(v, "_CQ_INSTALLATION_ID="),
590 strings.HasPrefix(v, "HOME="):
591 pluginEnv = append(pluginEnv, v)
592 case strings.HasPrefix(v, prefix):
593 cleanEnv := strings.TrimPrefix(v, prefix)
594 pluginEnv = append(pluginEnv, cleanEnv)
595 if strings.HasPrefix(cleanEnv, "CLOUDQUERY_API_KEY=") ||
596 strings.HasPrefix(cleanEnv, "AWS_") {
597 k := getEnvKey(cleanEnv)
598 specificEnvironmentVariables[k] = true
599 }
600 }
601 }
602 for k, v := range globalEnvironmentVariables {
603 if _, ok := specificEnvironmentVariables[k]; !ok {
604 pluginEnv = append(pluginEnv, v)
605 }
606 }
607 return pluginEnv
608}
609
610func getEnvKey(v string) string {
611 parts := strings.SplitN(v, "=", 2)

Callers 3

testConnectionFunction · 0.85
syncFunction · 0.85
TestSync_FilterPluginEnvFunction · 0.85

Calls 1

getEnvKeyFunction · 0.85

Tested by 1

TestSync_FilterPluginEnvFunction · 0.68