1
0
mirror of https://github.com/prometheus-community/postgres_exporter.git synced 2025-08-08 04:42:07 +03:00
Files
Will Rouesnel 989489096e Refactor repository layout and convert build system to Mage.
This commit implements a massive refactor of the repository, and
moves the build system over to use Mage (magefile.org) which should
allow seamless building across multiple platforms.
2018-03-06 07:29:35 +10:00

50 lines
879 B
Go

// Copyright 2017 Tom Thorogood. All rights reserved.
// Use of this source code is governed by a Modified
// BSD License that can be found in the LICENSE file.
package bindata
import (
"bytes"
"io"
"os"
"sync"
)
var bufPool = &sync.Pool{
New: func() interface{} {
return new(bytes.Buffer)
},
}
func (asset *binAsset) copy(w io.Writer) error {
rc, err := asset.Open()
if err != nil {
return err
}
n := 4 * 1024
if s, ok := rc.(interface {
Stat() (os.FileInfo, error)
}); ok {
if fi, err := s.Stat(); err == nil {
// Don't preallocate a huge buffer, just in case.
if size := fi.Size(); size < 1e9 {
n = int(size) + bytes.MinRead
}
}
}
buf := bufPool.Get().(*bytes.Buffer)
buf.Grow(n)
_, err = io.CopyBuffer(w, rc, buf.Bytes()[:buf.Cap()])
if closeErr := rc.Close(); err == nil {
err = closeErr
}
bufPool.Put(buf)
return err
}