mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-02-02 04:32:23 +00:00
Handling channel close
This commit is contained in:
parent
302f07da3c
commit
435083db9e
2 changed files with 20 additions and 15 deletions
|
@ -261,11 +261,12 @@ func (c *client) Dir(u *model.User, r *model.Repo, b *model.Build, f string) ([]
|
|||
content, err := c.File(u, r, b, path)
|
||||
if err != nil {
|
||||
errc <- err
|
||||
}
|
||||
} else {
|
||||
fc <- &remote.FileMeta{
|
||||
Name: path,
|
||||
Data: content,
|
||||
}
|
||||
}
|
||||
}(f + "/" + *file.Name)
|
||||
}
|
||||
|
||||
|
@ -275,14 +276,18 @@ func (c *client) Dir(u *model.User, r *model.Repo, b *model.Build, f string) ([]
|
|||
go func() {
|
||||
for {
|
||||
select {
|
||||
case err := <-errc:
|
||||
case err, open := <-errc:
|
||||
if open {
|
||||
errors = append(errors, err)
|
||||
wg.Done()
|
||||
case fileMeta := <-fc:
|
||||
}
|
||||
case fileMeta, open := <-fc:
|
||||
if open {
|
||||
files = append(files, fileMeta)
|
||||
wg.Done()
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
wg.Wait()
|
||||
|
|
|
@ -18,17 +18,17 @@ func (cf *configFetcher) Fetch() ([]*remote.FileMeta, error) {
|
|||
for i := 0; i < 5; i++ {
|
||||
select {
|
||||
case <-time.After(time.Second * time.Duration(i)):
|
||||
file, err := cf.remote_.File(cf.user, cf.repo, cf.build, cf.repo.Config) // either a file
|
||||
if err == nil {
|
||||
file, fileerr := cf.remote_.File(cf.user, cf.repo, cf.build, cf.repo.Config) // either a file
|
||||
if fileerr == nil {
|
||||
return []*remote.FileMeta{&remote.FileMeta{
|
||||
Name: cf.repo.Config,
|
||||
Data: file,
|
||||
}}, nil
|
||||
}
|
||||
|
||||
dir, err := cf.remote_.Dir(cf.user, cf.repo, cf.build, cf.repo.Config) // or a folder
|
||||
if err != nil {
|
||||
return nil, err
|
||||
dir, direrr := cf.remote_.Dir(cf.user, cf.repo, cf.build, ".drone") // or a folder
|
||||
if direrr != nil {
|
||||
return nil, direrr
|
||||
}
|
||||
return dir, nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue