Skip to content

Instantly share code, notes, and snippets.

View petergtz's full-sized avatar
😊

Peter Götz petergtz

😊
View GitHub Profile
writer := gcpClient.Bucket("my-gcp-bucket").Object("my-object").NewWriter(context.TODO())
defer writer.Close()
_, e := io.Copy(writer, src)
if e != nil {
return errors.Wrapf(e, "Path %v", path)
}
func CopyFile(dstName, srcName string) (int64, error) {
src, e := os.Open(srcName)
if e != nil {
return 0, errors.New("Error while opening file for reading. Caused by: " + e.Error())
}
var safeSrcCloser multicloser.SafeCloser
defer safeSrcCloser.Close(src)
dst, e := os.Create(dstName)
if e != nil {
@petergtz
petergtz / safecloser.go
Created June 19, 2017 10:00
a little helper for correct error handling in Go
type SafeCloser bool
func (safeCloser *SafeCloser) Close(closer io.Closer) error {
if *safeCloser {
return nil
}
*safeCloser = true
return closer.Close()
}
func CopyFile(dstName, srcName string) (written int64, err error) {
src, err := os.Open(srcName)
if err != nil {
return
}
defer src.Close()
dst, err := os.Create(dstName)
if err != nil {
return
@petergtz
petergtz / CopyFile-correct.go
Last active June 19, 2017 09:56
A CopyFile function in Go with correct error handling
func CopyFile(dstName, srcName string) (int64, error) {
src, e := os.Open(srcName)
if e != nil {
return 0, errors.New("Error while opening file for reading. Caused by: " + e.Error())
}
dst, e := os.Create(dstName)
if e != nil {
src.Close()
return 0, errors.New("Error while opening file for writing. Caused by: " + e.Error())
compilation:
cloud_properties:
instance_type: m1.small
network: default
workers: 1
director_uuid: fb70f16a-4d6f-41f8-bc2e-0181a03dff18
jobs:
# - instances: 0
# name: blobstore
@petergtz
petergtz / manifest.yml
Last active February 18, 2016 11:26 — forked from drnic/manifest.yml
bosh manifest for redis to bosh-lite
compilation:
cloud_properties:
name: random
network: cf1
reuse_compilation_vms: true
workers: 6
director_uuid: 9bca5701-66c0-43ee-a4d0-64813b4b5ece
jobs:
- instances: 1
name: consul_z1