summaryrefslogtreecommitdiff
path: root/termshare/main.go
blob: 600e8b1b6128a73d470a6bf68f55694a97bdd047 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package main

import (
    "termshare/cmd"
)

func main() {
    cmd.Execute()
}

// import (
// 	"fmt"
//     "bufio"
// 	"io"
// 	"log"
// 	"os"
// 	"os/exec"
// 	"syscall"
//     "strconv"
// 	"unsafe"

// 	"github.com/gliderlabs/ssh"
// 	"github.com/creack/pty"
// )

// func setWinsize(f *os.File, w, h int) {
// 	syscall.Syscall(syscall.SYS_IOCTL, f.Fd(), uintptr(syscall.TIOCSWINSZ),
// 		uintptr(unsafe.Pointer(&struct{ h, w, x, y uint16 }{uint16(h), uint16(w), 0, 0})))
// }

// func main() {
// 	ssh.Handle(func(s ssh.Session) {
// 		cmd := exec.Command("bash")
// 		ptyReq, winCh, isPty := s.Pty()
// 		if isPty {
// 			cmd.Env = append(cmd.Env, fmt.Sprintf("TERM=%s", ptyReq.Term))
// 			f, err := pty.Start(cmd)
// 			if err != nil {
// 				panic(err)
// 			}
// 			go func() {
// 				for win := range winCh {
// 					setWinsize(f, win.Width, win.Height)
// 				}
// 			}()
// 			go func() {
// 				io.Copy(f, s) // stdin
// 			}()
// 			io.Copy(s, f) // stdout
// 			cmd.Wait()
// 		} else {
// 			io.WriteString(s, "No PTY requested.\n")
//             reader := bufio.NewReader(s)
//             for {
//                 input, _, _ := reader.ReadRune()
//                 io.WriteString(os.Stdout, strconv.QuoteRune(input))
//             }
// 			s.Exit(1)
// 		}
// 	})

// 	log.Println("starting ssh server on port 2222...")
// 	log.Fatal(ssh.ListenAndServe(":2222", nil))
// }