diff --git a/pkg/cmdrunner/cmdrunner.go b/pkg/cmdrunner/cmdrunner.go index 01b98639..2a103cf6 100644 --- a/pkg/cmdrunner/cmdrunner.go +++ b/pkg/cmdrunner/cmdrunner.go @@ -276,7 +276,8 @@ func RunCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.U runPacket.ReqId = uuid.New().String() runPacket.CK = base.MakeCommandKey(ids.SessionId, cmdId) runPacket.Cwd = ids.RemoteState.Cwd - runPacket.Env = nil + runPacket.Env0 = ids.RemoteState.Env0 + runPacket.EnvComplete = true runPacket.UsePty = true runPacket.TermOpts = &packet.TermOpts{Rows: remote.DefaultTermRows, Cols: remote.DefaultTermCols, Term: remote.DefaultTerm} runPacket.Command = strings.TrimSpace(cmdStr) diff --git a/pkg/remote/remote.go b/pkg/remote/remote.go index 0ffec94a..745dbfee 100644 --- a/pkg/remote/remote.go +++ b/pkg/remote/remote.go @@ -183,8 +183,8 @@ func GetAllRemoteState() []RemoteState { vars["type"] = proc.Remote.RemoteType if proc.ServerProc != nil && proc.ServerProc.InitPk != nil { state.DefaultState = &sstore.RemoteState{ - Cwd: proc.ServerProc.InitPk.Cwd, - Env: proc.ServerProc.InitPk.Env, + Cwd: proc.ServerProc.InitPk.Cwd, + Env0: proc.ServerProc.InitPk.Env0, } vars["home"] = proc.ServerProc.InitPk.HomeDir vars["remoteuser"] = proc.ServerProc.InitPk.User @@ -326,7 +326,7 @@ func (msh *MShellProc) GetDefaultState() *sstore.RemoteState { if msh.ServerProc == nil || msh.ServerProc.InitPk == nil { return nil } - return &sstore.RemoteState{Cwd: msh.ServerProc.InitPk.HomeDir} + return &sstore.RemoteState{Cwd: msh.ServerProc.InitPk.HomeDir, Env0: msh.ServerProc.InitPk.Env0} } func (msh *MShellProc) ExpandHomeDir(pathStr string) (string, error) { diff --git a/pkg/sstore/sstore.go b/pkg/sstore/sstore.go index 52e2c81f..32d49180 100644 --- a/pkg/sstore/sstore.go +++ b/pkg/sstore/sstore.go @@ -229,8 +229,8 @@ type HistoryItemType struct { } type RemoteState struct { - Cwd string `json:"cwd"` - Env []byte `json:"env"` + Cwd string `json:"cwd"` + Env0 []byte `json:"env0"` // "env -0" format } func (s *RemoteState) Scan(val interface{}) error {