| 55 | ) |
| 56 | |
| 57 | func newProgressBar(str string, w io.Writer, pbLogs bool) *pb.ProgressBar { |
| 58 | // Default behaviour in non-interactive mode |
| 59 | if !pbLogs && !term.IsTerminal(int(os.Stdout.Fd())) { |
| 60 | return nil |
| 61 | } |
| 62 | // bar template configuration |
| 63 | str = fmt.Sprintf(`"%v: "`, str) |
| 64 | var barTemplateConfiguration string = fmt.Sprintf(`{{ cyan %s }} {{ counters .}} {{ bar . "[" "=" ">" "." "]"}} {{percent .}}`, str) |
| 65 | bar := pb.ProgressBarTemplate(barTemplateConfiguration).New(0) |
| 66 | bar.SetRefreshRate(time.Millisecond) |
| 67 | // non-interactive mode with progressbar-logs flag |
| 68 | if pbLogs && !term.IsTerminal(int(os.Stdout.Fd())) { |
| 69 | bar.Set(pb.Terminal, true) |
| 70 | } |
| 71 | bar.Set(pb.CleanOnFinish, true) |
| 72 | if w != nil { |
| 73 | bar.SetWriter(w) |
| 74 | } |
| 75 | return bar |
| 76 | } |
| 77 | |
| 78 | func startProgressBar(bar *pb.ProgressBar) { |
| 79 | if bar != nil { |