Documentation ¶
Overview ¶
Simple console progress bars
Index ¶
- Constants
- func Format(i int64, units Units, width int) string
- func FormatBytes(i int64) (result string)
- func FormatDuration(d time.Duration) string
- type Callback
- type EWMA
- type ProgressBar
- func (pb *ProgressBar) CurrentValue() int64
- func (pb *ProgressBar) Finish()
- func (pb *ProgressBar) Format(format string) *ProgressBar
- func (pb *ProgressBar) GOString() string
- func (pb *ProgressBar) GetTimeLeft() time.Duration
- func (pb *ProgressBar) GetWidth() int
- func (pb *ProgressBar) Postfix(postfix string) *ProgressBar
- func (pb *ProgressBar) Prefix(prefix string) *ProgressBar
- func (pb *ProgressBar) Set64(current int64) *ProgressBar
- func (pb *ProgressBar) SetMaxWidth(width int) *ProgressBar
- func (pb *ProgressBar) SetRefreshRate(rate time.Duration) *ProgressBar
- func (pb *ProgressBar) SetScale(scale float64) *ProgressBar
- func (pb *ProgressBar) SetUnits(units Units) *ProgressBar
- func (pb *ProgressBar) SetWidth(width int) *ProgressBar
- func (pb *ProgressBar) Start() *ProgressBar
- func (pb *ProgressBar) Update()
- type Units
Constants ¶
const ( // AverageMetricAge average over a one-minute period, which means the average // age of the metrics is in the period of 30 seconds AverageMetricAge float64 = 30.0 // Decay formula for computing the decay factor for average metric age Decay float64 = 2 / (float64(AverageMetricAge) + 1) )
const ( // Default refresh rate - 200ms DEFAULT_REFRESH_RATE = time.Millisecond * 200 FORMAT = "[=>-]" )
Variables ¶
This section is empty.
Functions ¶
func FormatBytes ¶
Convert bytes to human readable string. Like a 2 MB, 64.2 KB, 52 B
func FormatDuration ¶
Types ¶
type Callback ¶
type Callback func(out string)
Callback for custom output For example:
bar.Callback = func(s string) { mySuperPrint(s) }
type EWMA ¶
type EWMA struct {
// contains filtered or unexported fields
}
EWMA represents the exponentially weighted moving average of a series of numbers.
type ProgressBar ¶
type ProgressBar struct { Total int64 RefreshRate time.Duration ShowPercent, ShowCounters bool ShowSpeed, ShowTimeLeft, ShowBar bool ShowFinalTime bool Output io.Writer Callback Callback NotPrint bool Units Units Width int ForceWidth bool ManualUpdate bool TimeLeft time.Duration TotalBytes int64 // default width for unit numbers and time box UnitsWidth int TimeBoxWidth int BarWidth int BarStart string BarEnd string Empty string Current string CurrentN string AlwaysUpdate bool // contains filtered or unexported fields }
func New64 ¶
func New64(total int64) *ProgressBar
Create new progress bar object uding int64 as total
func (*ProgressBar) CurrentValue ¶
func (pb *ProgressBar) CurrentValue() int64
func (*ProgressBar) Format ¶
func (pb *ProgressBar) Format(format string) *ProgressBar
Set custom format for bar Example: bar.Format("[=>_]") Example: bar.Format("[\x00=\x00>\x00-\x00]") // \x00 is the delimiter
func (*ProgressBar) GOString ¶
func (pb *ProgressBar) GOString() string
func (*ProgressBar) GetTimeLeft ¶
func (pb *ProgressBar) GetTimeLeft() time.Duration
func (*ProgressBar) GetWidth ¶
func (pb *ProgressBar) GetWidth() int
func (*ProgressBar) Postfix ¶
func (pb *ProgressBar) Postfix(postfix string) *ProgressBar
Set postfix string
func (*ProgressBar) Prefix ¶
func (pb *ProgressBar) Prefix(prefix string) *ProgressBar
Set prefix string
func (*ProgressBar) Set64 ¶
func (pb *ProgressBar) Set64(current int64) *ProgressBar
Set64 sets the current value as int64
func (*ProgressBar) SetMaxWidth ¶
func (pb *ProgressBar) SetMaxWidth(width int) *ProgressBar
Set max width, if width is bigger than terminal width, will be ignored
func (*ProgressBar) SetRefreshRate ¶
func (pb *ProgressBar) SetRefreshRate(rate time.Duration) *ProgressBar
Set bar refresh rate
func (*ProgressBar) SetScale ¶
func (pb *ProgressBar) SetScale(scale float64) *ProgressBar
func (*ProgressBar) SetUnits ¶
func (pb *ProgressBar) SetUnits(units Units) *ProgressBar
Set units bar.SetUnits(U_NO) - by default bar.SetUnits(U_BYTES) - for Mb, Kb, etc
func (*ProgressBar) SetWidth ¶
func (pb *ProgressBar) SetWidth(width int) *ProgressBar
Set bar width
func (*ProgressBar) Update ¶
func (pb *ProgressBar) Update()
Write the current state of the progressbar