A Golang command line tool to show a spinner as you wait for some long running jobs to finish.
This is a simple project but carries a tremendous value to me [❤️].
Install chin:
go get -u github.com/adhocore/chinUse in Go code with WaitGroup:
var wg sync.WaitGroup
s := chin.New().WithWait(&wg)
go s.Start()
// invoke some long running task
// (you can also call s.Stop() from that task)
longTask(&wg)
s.Stop()
wg.Wait()Refer and run working examples with:
go run examples/main.go
You can choose from provided spinner sets chin.Default, chin.Arrows and chin.Dots:
s := chin.New(chin.Arrows)
// or
s := chin.New(chin.Dots)
go s.Start()
chin.Defaultis selected by default so you don't have to specify it.
You can also define your own spinner set with delay and animation chars like so:
// Animates 0 to 4 in a gap of 50ms:
s := chin.New(chin.Set{50*time.Millisecond, []string{"0", "1", "2", "3", "4", "3", "2", "1"}})
go s.Start()My other golang projects you might find interesting and useful:
- gronx - Lightweight, fast and dependency-free Cron expression parser (due checker), task scheduler and/or daemon for Golang (tested on v1.13 and above) and standalone usage.
- urlsh - URL shortener and bookmarker service with UI, API, Cache, Hits Counter and forwarder using postgres and redis in backend, bulma in frontend; has web and cli client.
- fast - Check your internet speed with ease and comfort right from the terminal. (It uses
adhocore/chin.) - goic - Go Open ID Connect, is OpenID connect client library for Golang, supports the Authorization Code Flow of OpenID Connect specification.
- jsonc - Golang JSON parser supporting comments, trailing commas and literal newlines.