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)) // }