modulepackage
0.0.0-20181231162520-d4ee583ebf0f
Repository: https://github.com/sethgrid/curse.git
Documentation: pkg.go.dev
# README
Curse
A utility for manipulating the terminal cursor. Current feature set:
- Get terminal cursor position
- Move cursor
- Move up, down n-lines
- Clear line
- Clear Screen (up, down, all)
- Set Color
Basic Example usage (see below for an inline-progress bar):
package main
import (
"fmt"
"log"
"github.com/sethgrid/curse"
)
func main() {
c, err := curse.New()
if err != nil {
log.Fatal(err)
}
c.SetColorBold(curse.RED).SetBackgroundColor(curse.BLACK)
fmt.Println("Position: ", c.Position)
c.SetDefaultStyle()
fmt.Println("something to be erased")
c.MoveUp(1).EraseCurrentLine().MoveDown(1)
}
Progress Bar Example:
package main
import (
"fmt"
"strings"
"time"
"github.com/sethgrid/curse"
)
func main() {
fmt.Println("Progress Bar")
total := 150
progressBarWidth := 80
c, _ := curse.New()
// give some buffer space on the terminal
fmt.Println()
// display a progress bar
for i := 0; i <= total; i++ {
c.MoveUp(1)
c.EraseCurrentLine()
fmt.Printf("%d/%d ", i, total)
c.MoveDown(1)
c.EraseCurrentLine()
fmt.Printf("%s", progressBar(i, total, progressBarWidth))
time.Sleep(time.Millisecond * 25)
}
// end the previous last line of output
fmt.Println()
fmt.Println("Complete")
}
func progressBar(progress, total, width int) string {
bar := make([]string, width)
for i, _ := range bar {
if float32(progress)/float32(total) > float32(i)/float32(width) {
bar[i] = "*"
} else {
bar[i] = " "
}
}
return "[" + strings.Join(bar, "") + "]"
}
# Functions
No description provided by the author
using named returns to help when using the method to know what is what.
No description provided by the author
# Constants
No description provided by the author
style.
No description provided by the author
No description provided by the author
control.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author