(blockId string, blockMeta waveobj.MetaMapType, connName string)
| 757 | } |
| 758 | |
| 759 | func 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 | |
| 801 | func getCustomInitScriptKeyCascade(shellType string) []string { |
| 802 | if shellType == "bash" { |
no test coverage detected