From 32cacb1c3aa780f83c840ee2b6d935c92734a6c0 Mon Sep 17 00:00:00 2001 From: Jitendra Adhikari Date: Mon, 24 Oct 2022 11:26:28 +0700 Subject: [PATCH 1/3] chore(deps): add adhocore/chin, update cdproto --- go.mod | 5 +++-- go.sum | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 741b904..1c9e390 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,8 @@ module github.com/adhocore/fast go 1.15 require ( - github.com/chromedp/cdproto v0.0.0-20221011223153-490dc4d81f7c + github.com/adhocore/chin v1.0.0 + github.com/chromedp/cdproto v0.0.0-20221023212508-67ada9507fb2 github.com/chromedp/chromedp v0.8.6 - golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect + golang.org/x/sys v0.1.0 // indirect ) diff --git a/go.sum b/go.sum index dbeb8d7..18bbdfb 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,10 @@ +github.com/adhocore/chin v1.0.0 h1:8B1NOmWY+pvSBXtFFGMbWuB0LbmNa7s0x/xsY6I17SM= +github.com/adhocore/chin v1.0.0/go.mod h1:X6ey2uVyRozOnqd/sFb/k0pxY1tnm+Msigh1m2jlfbg= github.com/chromedp/cdproto v0.0.0-20220924210414-0e3390be1777/go.mod h1:5Y4sD/eXpwrChIuxhSr/G20n9CdbCmoerOHnuAf0Zr0= github.com/chromedp/cdproto v0.0.0-20221011223153-490dc4d81f7c h1:JQvTh3Lqw0aGKFu/roG/DTMgqVCmSE6aVOegf+mMNrY= github.com/chromedp/cdproto v0.0.0-20221011223153-490dc4d81f7c/go.mod h1:5Y4sD/eXpwrChIuxhSr/G20n9CdbCmoerOHnuAf0Zr0= +github.com/chromedp/cdproto v0.0.0-20221023212508-67ada9507fb2 h1:xESwMZNYkDnZf9MUk+6lXfMbpDnEJwlEuIxKYKM1vJY= +github.com/chromedp/cdproto v0.0.0-20221023212508-67ada9507fb2/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= github.com/chromedp/chromedp v0.8.6 h1:KobeeqR2dpfKSG1prS3Y6+FbffMmGC6xmAobRXA9QEQ= github.com/chromedp/chromedp v0.8.6/go.mod h1:nBYHoD6YSNzrr82cIeuOzhw1Jo/s2o0QQ+ifTeoCZ+c= github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic= @@ -21,3 +25,5 @@ golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4= golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 1fd262821c60b99d3dc9757c1dcebc1feea7df9d Mon Sep 17 00:00:00 2001 From: Jitendra Adhikari Date: Mon, 24 Oct 2022 11:31:52 +0700 Subject: [PATCH 2/3] refactor: use adhocore/chin for spinner --- cmd/fast/main.go | 43 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/cmd/fast/main.go b/cmd/fast/main.go index 26bcdd0..9c1cddc 100644 --- a/cmd/fast/main.go +++ b/cmd/fast/main.go @@ -2,60 +2,43 @@ package main import ( "flag" - "fmt" "log" "sync" "time" + "github.com/adhocore/chin" "github.com/adhocore/fast/internal/fast" ) -func main() { - var noUp bool - var wg sync.WaitGroup +var noUp bool +func init() { flag.BoolVar(&noUp, "noup", false, "Do not show upload speed (shows only download speed)") flag.Parse() - wg.Add(1) +} - ch := make(chan bool) +func main() { + var wg sync.WaitGroup - go doSpin(ch) - go doFast(ch, &wg, noUp) + s := chin.New().WithWait(&wg) + go s.Start() - wg.Wait() -} + wg.Add(1) + go doFast(s, &wg, noUp) -func doSpin(ch chan bool) { - chars := []string{"+", "\\", "|", "/", "-", "+", "\\", "|", "/", "-"} - - for { - outer: - select { - case _, ok := <-ch: - if ok { - fmt.Print("\010") - break outer - } - default: - for _, c := range chars { - fmt.Print(c, "\010") - time.Sleep(50 * time.Millisecond) - } - } - } + wg.Wait() } -func doFast(ch chan bool, wg *sync.WaitGroup, noUp bool) { +func doFast(s *chin.Chin, wg *sync.WaitGroup, noUp bool) { defer wg.Done() start := time.Now() res, err := fast.Measure(noUp) - ch <- true if err != nil { log.Fatalf("error measuring speed: %v", err) } + s.Stop() fast.Out(res, start) } From 148c788a3384f468333c41d33a5f55845375901e Mon Sep 17 00:00:00 2001 From: Jitendra Adhikari Date: Mon, 24 Oct 2022 11:32:46 +0700 Subject: [PATCH 3/3] docs: update hashtags/version --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 214e18b..c477b9f 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Donate 15](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square&label=donate+15)](https://www.paypal.me/ji10/15usd) [![Donate 25](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square&label=donate+25)](https://www.paypal.me/ji10/25usd) [![Donate 50](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square&label=donate+50)](https://www.paypal.me/ji10/50usd) -[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Golang+tool+to+check+internet+speed+right+from+the+terminal&url=https://github.com/adhocore/fast&hashtags=php,jwt,auth) +[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Golang+tool+to+check+internet+speed+right+from+the+terminal&url=https://github.com/adhocore/fast&hashtags=golang,terminal,cli,speed-check,fast) A GO lang command line tool to check internet speed right from the terminal. @@ -25,7 +25,7 @@ Install `fast`: go get -u github.com/adhocore/fast/cmd/fast # or in recent go versions: -go install github.com/adhocore/fast/cmd/fast@v1.1.0 +go install github.com/adhocore/fast/cmd/fast@v1.2.0 ``` Finally, make sure `$GOPATH` or `$HOME/go/bin` is in your `$PATH` or `%path%`, then run: