mirror of
https://github.com/GoogleContainerTools/kaniko
synced 2026-10-18 09:57:51 +02:00
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.4.2 to 5.7.0. - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](https://github.com/go-git/go-git/compare/v5.4.2...v5.7.0) --- updated-dependencies: - dependency-name: github.com/go-git/go-git/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
53 lines
1.3 KiB
Markdown
53 lines
1.3 KiB
Markdown
# bufpipe: Buffered Pipe
|
|
|
|
[](https://circleci.com/gh/acomagu/bufpipe) [](https://godoc.org/github.com/acomagu/bufpipe)
|
|
|
|
The buffered version of io.Pipe. It's safe for concurrent use.
|
|
|
|
## How does it differ from io.Pipe?
|
|
|
|
Writes never block because the pipe has variable-sized buffer.
|
|
|
|
```Go
|
|
r, w := bufpipe.New(nil)
|
|
io.WriteString(w, "abc") // No blocking.
|
|
io.WriteString(w, "def") // No blocking, too.
|
|
w.Close()
|
|
io.Copy(os.Stdout, r)
|
|
// Output: abcdef
|
|
```
|
|
|
|
[Playground](https://play.golang.org/p/PdyBAS3pVob)
|
|
|
|
## How does it differ from bytes.Buffer?
|
|
|
|
Reads block if the internal buffer is empty until the writer is closed.
|
|
|
|
```Go
|
|
r, w := bufpipe.New(nil)
|
|
|
|
done := make(chan struct{})
|
|
go func() {
|
|
io.Copy(os.Stdout, r) // The reads block until the writer is closed.
|
|
done <- struct{}{}
|
|
}()
|
|
|
|
io.WriteString(w, "abc")
|
|
io.WriteString(w, "def")
|
|
w.Close()
|
|
<-done
|
|
// Output: abcdef
|
|
```
|
|
|
|
[Playground](https://play.golang.org/p/UppmyLeRgX6)
|
|
|
|
## Contribution
|
|
|
|
### Generate CREDITS
|
|
|
|
The [CREDITS](./CREDITS) file are generated by [gocredits](https://github.com/Songmu/gocredits). Update it when the dependencies are changed.
|
|
|
|
```
|
|
$ gocredits > CREDITS
|
|
```
|