Categorygithub.com/sethgrid/curse
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

# Structs

No description provided by the author
No description provided by the author
No description provided by the author