spin#
A very simple terminal spinner
Project Description#
I needed a very simple, minimal overhead, nice looking terminal spinner that didn't bring in a shed load of dependencies. So here it is!
It has a few nicities:
- Auto terminal detection and colouring via hue
- Customisable colours
- Custom progress message
- Simple and convenient API
Installation#
go get go.followtheprocess.codes/spin@latest
Quickstart#
package main
import (
"os"
"time"
"go.followtheprocess.codes/spin"
)
func main() {
spinner := spin.New(os.Stdout, "Digesting")
spinner.Start()
defer spinner.Stop()
time.Sleep(2 * time.Second)
}
You can also wrap a function in a spinner...
package main
import (
"os"
"time"
"go.followtheprocess.codes/spin"
)
func main() {
spinner := spin.New(os.Stdout, "Digesting")
// This is equivalent to the example above, Do will handle
// starting and stopping the spinner for you
spinner.Do(func() {
time.Sleep(2 * time.Second)
})
}
Credits#
This package was created with copier and the FollowTheProcess/go_copier project template.