mirror of
https://github.com/Jguer/yay
synced 2024-10-02 22:33:47 +00:00
Move MultiError to types package
This commit is contained in:
parent
fdcfeba902
commit
9e205eef4b
|
@ -11,6 +11,7 @@ import (
|
|||
"sync"
|
||||
|
||||
alpm "github.com/Jguer/go-alpm"
|
||||
"github.com/Jguer/yay/v9/pkg/types"
|
||||
)
|
||||
|
||||
// Decide what download method to use:
|
||||
|
@ -224,7 +225,7 @@ func getPkgbuilds(pkgs []string) error {
|
|||
func getPkgbuildsfromABS(pkgs []string, path string) (bool, error) {
|
||||
var wg sync.WaitGroup
|
||||
var mux sync.Mutex
|
||||
var errs MultiError
|
||||
var errs types.MultiError
|
||||
names := make(map[string]string)
|
||||
missing := make([]string, 0)
|
||||
downloaded := 0
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
|
||||
alpm "github.com/Jguer/go-alpm"
|
||||
"github.com/Jguer/yay/v9/pkg/completion"
|
||||
"github.com/Jguer/yay/v9/pkg/types"
|
||||
gosrc "github.com/Morganamilo/go-srcinfo"
|
||||
)
|
||||
|
||||
|
@ -818,7 +819,7 @@ func downloadPkgbuilds(bases []Base, toSkip stringSet, buildDir string) (stringS
|
|||
downloaded := 0
|
||||
var wg sync.WaitGroup
|
||||
var mux sync.Mutex
|
||||
var errs MultiError
|
||||
var errs types.MultiError
|
||||
|
||||
download := func(k int, base Base) {
|
||||
defer wg.Done()
|
||||
|
|
41
pkg/types/multierror.go
Normal file
41
pkg/types/multierror.go
Normal file
|
@ -0,0 +1,41 @@
|
|||
package types
|
||||
|
||||
import "sync"
|
||||
|
||||
// MultiError type handles error accumulation from goroutines
|
||||
type MultiError struct {
|
||||
Errors []error
|
||||
mux sync.Mutex
|
||||
}
|
||||
|
||||
// Error turns the MultiError structure into a string
|
||||
func (err *MultiError) Error() string {
|
||||
str := ""
|
||||
|
||||
for _, e := range err.Errors {
|
||||
str += e.Error() + "\n"
|
||||
}
|
||||
|
||||
return str[:len(str)-1]
|
||||
}
|
||||
|
||||
// Add adds an error to the Multierror structure
|
||||
func (err *MultiError) Add(e error) {
|
||||
if e == nil {
|
||||
return
|
||||
}
|
||||
|
||||
err.mux.Lock()
|
||||
err.Errors = append(err.Errors, e)
|
||||
err.mux.Unlock()
|
||||
}
|
||||
|
||||
// Return is used as a wrapper on return on wether to return the
|
||||
// MultiError Structure if errors exist or nil instead of delivering an empty structure
|
||||
func (err *MultiError) Return() error {
|
||||
if len(err.Errors) > 0 {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
3
query.go
3
query.go
|
@ -9,6 +9,7 @@ import (
|
|||
"time"
|
||||
|
||||
alpm "github.com/Jguer/go-alpm"
|
||||
"github.com/Jguer/yay/v9/pkg/types"
|
||||
rpc "github.com/mikkeloscar/aur"
|
||||
)
|
||||
|
||||
|
@ -478,7 +479,7 @@ func aurInfo(names []string, warnings *aurWarnings) ([]*rpc.Pkg, error) {
|
|||
seen := make(map[string]int)
|
||||
var mux sync.Mutex
|
||||
var wg sync.WaitGroup
|
||||
var errs MultiError
|
||||
var errs types.MultiError
|
||||
|
||||
makeRequest := func(n, max int) {
|
||||
defer wg.Done()
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"unicode"
|
||||
|
||||
alpm "github.com/Jguer/go-alpm"
|
||||
"github.com/Jguer/yay/v9/pkg/types"
|
||||
rpc "github.com/mikkeloscar/aur"
|
||||
)
|
||||
|
||||
|
@ -120,7 +121,7 @@ func upList(warnings *aurWarnings) (upSlice, upSlice, error) {
|
|||
var repoUp upSlice
|
||||
var aurUp upSlice
|
||||
|
||||
var errs MultiError
|
||||
var errs types.MultiError
|
||||
|
||||
aurdata := make(map[string]*rpc.Pkg)
|
||||
|
||||
|
|
34
utils.go
34
utils.go
|
@ -2,7 +2,6 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
|
@ -129,36 +128,3 @@ func removeInvalidTargets(targets []string) []string {
|
|||
|
||||
return filteredTargets
|
||||
}
|
||||
|
||||
type MultiError struct {
|
||||
Errors []error
|
||||
mux sync.Mutex
|
||||
}
|
||||
|
||||
func (err *MultiError) Error() string {
|
||||
str := ""
|
||||
|
||||
for _, e := range err.Errors {
|
||||
str += e.Error() + "\n"
|
||||
}
|
||||
|
||||
return str[:len(str)-1]
|
||||
}
|
||||
|
||||
func (err *MultiError) Add(e error) {
|
||||
if e == nil {
|
||||
return
|
||||
}
|
||||
|
||||
err.mux.Lock()
|
||||
err.Errors = append(err.Errors, e)
|
||||
err.mux.Unlock()
|
||||
}
|
||||
|
||||
func (err *MultiError) Return() error {
|
||||
if len(err.Errors) > 0 {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue