MCPcopy
hub / github.com/wavetermdev/waveterm / resolveEnvMap

Function resolveEnvMap

pkg/blockcontroller/shellcontroller.go:759–799  ·  view source on GitHub ↗
(blockId string, blockMeta waveobj.MetaMapType, connName string)

Source from the content-addressed store, hash-verified

757}
758
759func resolveEnvMap(blockId string, blockMeta waveobj.MetaMapType, connName string) (map[string]string, error) {
760 rtn := make(map[string]string)
761 config := wconfig.GetWatcher().GetFullConfig()
762 connKeywords := config.Connections[connName]
763 ckEnv := connKeywords.CmdEnv
764 for k, v := range ckEnv {
765 rtn[k] = v
766 }
767 ctx, cancelFn := context.WithTimeout(context.Background(), 2*time.Second)
768 defer cancelFn()
769 _, envFileData, err := filestore.WFS.ReadFile(ctx, blockId, wavebase.BlockFile_Env)
770 if err == fs.ErrNotExist {
771 err = nil
772 }
773 if err != nil {
774 return nil, fmt.Errorf("error reading command env file: %w", err)
775 }
776 if len(envFileData) > 0 {
777 envMap := envutil.EnvToMap(string(envFileData))
778 for k, v := range envMap {
779 rtn[k] = v
780 }
781 }
782 cmdEnv := blockMeta.GetStringMap(waveobj.MetaKey_CmdEnv, true)
783 for k, v := range cmdEnv {
784 if v == waveobj.MetaMap_DeleteSentinel {
785 delete(rtn, k)
786 continue
787 }
788 rtn[k] = v
789 }
790 connEnv := blockMeta.GetConnectionOverride(connName).GetStringMap(waveobj.MetaKey_CmdEnv, true)
791 for k, v := range connEnv {
792 if v == waveobj.MetaMap_DeleteSentinel {
793 delete(rtn, k)
794 continue
795 }
796 rtn[k] = v
797 }
798 return rtn, nil
799}
800
801func getCustomInitScriptKeyCascade(shellType string) []string {
802 if shellType == "bash" {

Callers 1

makeSwapTokenFunction · 0.85

Calls 6

GetWatcherFunction · 0.92
EnvToMapFunction · 0.92
GetFullConfigMethod · 0.80
ReadFileMethod · 0.80
GetStringMapMethod · 0.80
GetConnectionOverrideMethod · 0.80

Tested by

no test coverage detected