Guest User

Untitled

a guest
Jan 22nd, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "log"
  5. "github.com/marcusolsson/tui-go"
  6. )
  7.  
  8. var logo string = "My Logo"
  9.  
  10. func main() {
  11. Login()
  12. }
  13.  
  14. func Login() {
  15. inUser := tui.NewEntry()
  16. inUser.SetFocused(true)
  17.  
  18. inPass := tui.NewEntry()
  19. inPass.SetEchoMode(tui.EchoModePassword)
  20.  
  21. form := tui.NewGrid(0, 0)
  22. form.AppendRow(tui.NewLabel("Username"), tui.NewLabel("Password"))
  23. form.AppendRow(inUser, inPass)
  24.  
  25. // TODO: create OnActivated function
  26. btnLogin := tui.NewButton("[Login]")
  27.  
  28. // TODO: create OnActivated function
  29. btnRegister := tui.NewButton("[Register]")
  30.  
  31. buttons := tui.NewHBox(
  32. tui.NewSpacer(),
  33. tui.NewPadder(1, 0, btnLogin),
  34. tui.NewPadder(1, 0, btnRegister),
  35. )
  36.  
  37. window := tui.NewVBox(
  38. tui.NewPadder(1, 1, form),
  39. buttons,
  40. )
  41. window.SetBorder(true)
  42.  
  43. root := tui.NewVBox(
  44. tui.NewSpacer(),
  45. window,
  46. tui.NewSpacer(),
  47. )
  48.  
  49. tui.DefaultFocusChain.Set(inUser, inPass, btnLogin, btnRegister)
  50.  
  51. ui, err := tui.New(root)
  52. if err != nil {
  53. log.Fatal(err)
  54. }
  55.  
  56. ui.SetKeybinding("Esc", func() { ui.Quit() })
  57.  
  58. if err := ui.Run(); err != nil {
  59. log.Fatal(err)
  60. }
  61. }
  62.  
  63. package main
  64.  
  65. import (
  66. "net"
  67. "log"
  68. "io"
  69. "os/exec"
  70. "github.com/kr/pty"
  71. )
  72.  
  73. func main() {
  74. ln, err := net.Listen("tcp", ":2323")
  75. if err != nil {
  76. log.Fatal(err)
  77. }
  78. defer ln.Close()
  79. for {
  80. conn, err := ln.Accept()
  81. if err != nil {
  82. log.Fatal(err)
  83. }
  84. go startProg(conn)
  85. }
  86. }
  87.  
  88. func startProg(conn net.Conn) {
  89. defer conn.Close()
  90.  
  91. term, err := pty.StartWithSize(
  92. exec.Command("./program"),
  93. &pty.Winsize{Cols: 100, Rows: 30},
  94. )
  95. if err != nil {
  96. log.Fatal(err)
  97. }
  98. defer term.Close()
  99.  
  100. go io.Copy(term, conn)
  101. io.Copy(conn, term)
  102. }
Add Comment
Please, Sign In to add comment