diff --git a/progressbar.go b/progressbar.go index 99222a3..f6c95ad 100644 --- a/progressbar.go +++ b/progressbar.go @@ -81,6 +81,8 @@ type config struct { colorCodes bool // custom colors to use for colorCodes customColors map[string]string + // color to apply to spinner + spinnerColorCode string // show rate of change in kB/sec or MB/sec showBytes bool @@ -290,6 +292,13 @@ func OptionSetCustomColorCodes(customColors map[string]string) Option { } } +// OptionSetSpinnerColorCode sets color code for spinner +func OptionSetSpinnerColorCode(colorCode string) Option { + return func(p *ProgressBar) { + p.config.spinnerColorCode = colorCode + } +} + // OptionSetElapsedTime will enable elapsed time. Always enabled if OptionSetPredictTime is true. func OptionSetElapsedTime(elapsedTime bool) Option { return func(p *ProgressBar) { @@ -1294,6 +1303,10 @@ func renderProgressBar(c config, s *state) (int, error) { spinner = selectedSpinner[s.spinnerIdx] s.spinnerIdx = (s.spinnerIdx + 1) % len(selectedSpinner) } + // if set add spinner color code + if c.spinnerColorCode != "" && c.colorCodes { + spinner = "[" + c.spinnerColorCode + "]" + spinner + "[reset]" + } if c.elapsedTime { if c.showDescriptionAtLineEnd { str = fmt.Sprintf("\r%s %s [%s] %s ",