mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-21 16:38:23 +01:00
working on wsh ssh
This commit is contained in:
parent
383a71fc25
commit
f5d2d4c5a4
44
cmd/wsh/cmd/wshcmd-ssh.go
Normal file
44
cmd/wsh/cmd/wshcmd-ssh.go
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright 2024, Command Line Inc.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"github.com/wavetermdev/thenextwave/pkg/waveobj"
|
||||||
|
"github.com/wavetermdev/thenextwave/pkg/wshrpc"
|
||||||
|
"github.com/wavetermdev/thenextwave/pkg/wshrpc/wshclient"
|
||||||
|
)
|
||||||
|
|
||||||
|
var sshCmd = &cobra.Command{
|
||||||
|
Use: "ssh",
|
||||||
|
Short: "connect this terminal to a remote host",
|
||||||
|
Args: cobra.ExactArgs(1),
|
||||||
|
Run: sshRun,
|
||||||
|
PreRunE: preRunSetupRpcClient,
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
rootCmd.AddCommand(sshCmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
func sshRun(cmd *cobra.Command, args []string) {
|
||||||
|
sshArg := args[0]
|
||||||
|
blockId := RpcContext.BlockId
|
||||||
|
if blockId == "" {
|
||||||
|
WriteStderr("[error] cannot determine blockid (not in JWT)\n")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data := wshrpc.CommandSetMetaData{
|
||||||
|
ORef: waveobj.MakeORef(waveobj.OType_Block, blockId),
|
||||||
|
Meta: map[string]any{
|
||||||
|
waveobj.MetaKey_Connection: sshArg,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
err := wshclient.SetMetaCommand(RpcClient, data, nil)
|
||||||
|
if err != nil {
|
||||||
|
WriteStderr("[error] setting switching connection: %v\n", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
WriteStderr("switched connection to %q\n", sshArg)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user