From efe414873dfbab405d63de2406e7af4acb0f2fbf Mon Sep 17 00:00:00 2001 From: Caleb Bassi Date: Thu, 29 Nov 2018 09:19:22 -0800 Subject: [PATCH] Refactor debug and test folders --- debug/debuger.go | 117 --------------------------------------------- test/log_events.go | 30 ++++++++++++ test/runtest.go | 66 ------------------------- 3 files changed, 30 insertions(+), 183 deletions(-) delete mode 100644 debug/debuger.go create mode 100644 test/log_events.go delete mode 100644 test/runtest.go diff --git a/debug/debuger.go b/debug/debuger.go deleted file mode 100644 index 5b6cd9b..0000000 --- a/debug/debuger.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2017 Zack Guo . All rights reserved. -// Use of this source code is governed by a MIT license that can -// be found in the LICENSE file. - -package debug - -import ( - "fmt" - "net/http" - - "golang.org/x/net/websocket" -) - -type Server struct { - Port string - Addr string - Path string - Msg chan string - chs []chan string -} - -type Client struct { - Port string - Addr string - Path string - ws *websocket.Conn -} - -var defaultPort = ":8080" - -func NewServer() *Server { - return &Server{ - Port: defaultPort, - Addr: "localhost", - Path: "/echo", - Msg: make(chan string), - chs: make([]chan string, 0), - } -} - -func NewClient() Client { - return Client{ - Port: defaultPort, - Addr: "localhost", - Path: "/echo", - } -} - -func (c Client) ConnectAndListen() error { - ws, err := websocket.Dial("ws://"+c.Addr+c.Port+c.Path, "", "http://"+c.Addr) - if err != nil { - return err - } - defer ws.Close() - - var m string - for { - err := websocket.Message.Receive(ws, &m) - if err != nil { - fmt.Print(err) - return err - } - fmt.Print(m) - } -} - -func (s *Server) ListenAndServe() error { - http.Handle(s.Path, websocket.Handler(func(ws *websocket.Conn) { - defer ws.Close() - - mc := make(chan string, 10) - s.chs = append(s.chs, mc) - - for m := range mc { - websocket.Message.Send(ws, m) - } - })) - - go func() { - for msg := range s.Msg { - for _, c := range s.chs { - func(a chan string) { - a <- msg - }(c) - } - } - }() - - return http.ListenAndServe(s.Port, nil) -} - -func (s *Server) Log(msg string) { - go func() { s.Msg <- msg }() -} - -func (s *Server) Logf(format string, a ...interface{}) { - s.Log(fmt.Sprintf(format, a...)) -} - -var DefaultServer = NewServer() -var DefaultClient = NewClient() - -func ListenAndServe() error { - return DefaultServer.ListenAndServe() -} - -func ConnectAndListen() error { - return DefaultClient.ConnectAndListen() -} - -func Log(msg string) { - DefaultServer.Log(msg) -} - -func Logf(format string, a ...interface{}) { - DefaultServer.Logf(format, a...) -} diff --git a/test/log_events.go b/test/log_events.go new file mode 100644 index 0000000..981944d --- /dev/null +++ b/test/log_events.go @@ -0,0 +1,30 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +package main + +import ( + "fmt" + + ui "github.com/gizak/termui" +) + +// logs all events to the termui window +// stdout can also be redirected to a file and read with `tail -f` +func main() { + err := ui.Init() + if err != nil { + panic(err) + } + defer ui.Close() + + for { + e := <-ui.PollEvent() + fmt.Printf("%v", e) + switch e.ID { + case "q", "": + return + } + } +} diff --git a/test/runtest.go b/test/runtest.go deleted file mode 100644 index 2451ce9..0000000 --- a/test/runtest.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2017 Zack Guo . All rights reserved. -// Use of this source code is governed by a MIT license that can -// be found in the LICENSE file. - -package main - -import ( - "fmt" - "os" - - "github.com/gizak/termui" - "github.com/gizak/termui/debug" -) - -func main() { - // run as client - if len(os.Args) > 1 { - fmt.Print(debug.ConnectAndListen()) - return - } - - // run as server - go func() { panic(debug.ListenAndServe()) }() - - if err := termui.Init(); err != nil { - panic(err) - } - defer termui.Close() - - //termui.UseTheme("helloworld") - b := termui.NewBlock() - b.Width = 20 - b.Height = 20 - b.Float = termui.AlignCenter - b.BorderLabel = "[HELLO](fg-red,bg-white) [WORLD](fg-blue,bg-green)" - - termui.Render(b) - - termui.Handle("/sys", func(e termui.Event) { - k, ok := e.Data.(termui.EvtKbd) - debug.Logf("->%v\n", e) - if ok && k.KeyStr == "q" { - termui.StopLoop() - } - }) - - termui.Handle(("/usr"), func(e termui.Event) { - debug.Logf("->%v\n", e) - }) - - termui.Handle("/timer/1s", func(e termui.Event) { - t := e.Data.(termui.EvtTimer) - termui.SendCustomEvt("/usr/t", t.Count) - - if t.Count%2 == 0 { - b.BorderLabel = "[HELLO](fg-red,bg-green) [WORLD](fg-blue,bg-white)" - } else { - b.BorderLabel = "[HELLO](fg-blue,bg-white) [WORLD](fg-red,bg-green)" - } - - termui.Render(b) - - }) - - termui.Loop() -}