mirror of
https://github.com/gitpod-io/gitpod.git
synced 2025-12-08 17:36:30 +00:00
33 lines
903 B
Go
33 lines
903 B
Go
// Copyright (c) 2020 Gitpod GmbH. All rights reserved.
|
|
// Licensed under the GNU Affero General Public License (AGPL).
|
|
// See License.AGPL.txt in the project root for license information.
|
|
|
|
package observer
|
|
|
|
import (
|
|
"github.com/cheggaaa/pb/v3"
|
|
|
|
"github.com/gitpod-io/gitpod/loadgen/pkg/loadgen"
|
|
)
|
|
|
|
// NewProgressBarObserver produces a new progress bar
|
|
func NewProgressBarObserver(total int) chan<- *loadgen.SessionEvent {
|
|
res := make(chan *loadgen.SessionEvent)
|
|
// bar := pb.Full.New(total)
|
|
tmpl := `{{ green "spinning up:" }} {{ bar . "[" "█" (cycle . "↖" "↗" "↘" "↙" ) " " "]"}} {{speed . }} {{counters . "%s/%s"}}`
|
|
// start bar based on our template
|
|
bar := pb.ProgressBarTemplate(tmpl).New(total)
|
|
|
|
go func() {
|
|
defer bar.Finish()
|
|
for evt := range res {
|
|
if evt.Kind != loadgen.SessionWorkspaceStart {
|
|
continue
|
|
}
|
|
bar.Increment()
|
|
bar.Write()
|
|
}
|
|
}()
|
|
return res
|
|
}
|