43 lines
933 B
Go
43 lines
933 B
Go
package test
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net"
|
|
|
|
"github.com/cli/cli/v2/pkg/liveshare"
|
|
"golang.org/x/crypto/ssh"
|
|
)
|
|
|
|
type Session struct {
|
|
channel ssh.Channel
|
|
}
|
|
|
|
func (*Session) Close() error {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
func (*Session) GetSharedServers(context.Context) ([]*liveshare.Port, error) {
|
|
panic("unimplemented")
|
|
}
|
|
|
|
func (s *Session) KeepAlive(reason string) {
|
|
}
|
|
|
|
func (s *Session) GetKeepAliveReason() string {
|
|
return ""
|
|
}
|
|
|
|
func (s *Session) StartSharing(ctx context.Context, sessionName string, port int) (liveshare.ChannelID, error) {
|
|
conn, err := net.Dial("tcp", fmt.Sprintf("127.0.0.1:%d", port))
|
|
if err != nil {
|
|
return liveshare.ChannelID{}, err
|
|
}
|
|
s.channel = &Channel{conn}
|
|
return liveshare.ChannelID{}, nil
|
|
}
|
|
|
|
// Creates mock SSH channel connected to the mock gRPC server
|
|
func (s *Session) OpenStreamingChannel(ctx context.Context, id liveshare.ChannelID) (ssh.Channel, error) {
|
|
return s.channel, nil
|
|
}
|