1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/shirdonl-goProgressor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
full.go 964 Байты
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
leastedu Отправлено 29.11.2019 11:18 a2ade9b
package main
import (
"fmt"
"math/rand"
"sync"
"time"
"gitee.com/shirdonl/goProgressor"
"gitee.com/shirdonl/goProgressor/util/strutil"
)
var steps = []string{
"downloading source",
"installing deps",
"compiling",
"packaging",
"seeding database",
"deploying",
"staring servers",
}
func main() {
fmt.Println("apps: deployment started: app1, app2")
goprogressor.Start()
var wg sync.WaitGroup
wg.Add(1)
go deploy("app1", &wg)
wg.Add(1)
go deploy("app2", &wg)
wg.Wait()
fmt.Println("apps: successfully deployed: app1, app2")
}
func deploy(app string, wg *sync.WaitGroup) {
defer wg.Done()
bar := goprogressor.AddBar(len(steps)).AppendCompleted().PrependElapsed()
bar.Width = 50
// prepend the deploy step to the bar
bar.PrependFunc(func(b *goprogressor.Bar) string {
return strutil.Resize(app+": "+steps[b.Current()-1], 22)
})
rand.Seed(500)
for bar.Incr() {
time.Sleep(time.Millisecond * time.Duration(rand.Intn(2000)))
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/shirdonl-goProgressor.git
git@api.gitlife.ru:oschina-mirror/shirdonl-goProgressor.git
oschina-mirror
shirdonl-goProgressor
shirdonl-goProgressor
master