mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-05 19:59:37 -06:00
Bumps [github.com/gookit/config/v2](https://github.com/gookit/config) from 2.2.3 to 2.2.4. - [Release notes](https://github.com/gookit/config/releases) - [Commits](https://github.com/gookit/config/compare/v2.2.3...v2.2.4) --- updated-dependencies: - dependency-name: github.com/gookit/config/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
58 lines
1.0 KiB
Go
58 lines
1.0 KiB
Go
package goutil
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gookit/goutil/structs"
|
|
"github.com/gookit/goutil/syncs"
|
|
)
|
|
|
|
// ErrGroup is a collection of goroutines working on subtasks that
|
|
// are part of the same overall task.
|
|
type ErrGroup = syncs.ErrGroup
|
|
|
|
// NewCtxErrGroup instance
|
|
func NewCtxErrGroup(ctx context.Context, limit ...int) (*ErrGroup, context.Context) {
|
|
return syncs.NewCtxErrGroup(ctx, limit...)
|
|
}
|
|
|
|
// NewErrGroup instance
|
|
func NewErrGroup(limit ...int) *ErrGroup {
|
|
return syncs.NewErrGroup(limit...)
|
|
}
|
|
|
|
// RunFn func
|
|
type RunFn func(ctx *structs.Data) error
|
|
|
|
// QuickRun struct
|
|
type QuickRun struct {
|
|
ctx *structs.Data
|
|
// err error
|
|
fns []RunFn
|
|
}
|
|
|
|
// NewQuickRun instance
|
|
func NewQuickRun() *QuickRun {
|
|
return &QuickRun{
|
|
ctx: structs.NewData(),
|
|
}
|
|
}
|
|
|
|
// Add func for run
|
|
func (p *QuickRun) Add(fns ...RunFn) *QuickRun {
|
|
p.fns = append(p.fns, fns...)
|
|
return p
|
|
}
|
|
|
|
// Run all func
|
|
func (p *QuickRun) Run() error {
|
|
for i, fn := range p.fns {
|
|
p.ctx.Set("index", i)
|
|
|
|
if err := fn(p.ctx); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|