github.com/pavlo67/common@v0.5.3/common/filelib/append.go (about) 1 package filelib 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/pavlo67/common/common/errors" 8 ) 9 10 const onAppendFile = "on filelib.AppendFile()" 11 12 func AppendFile(filename string, data []byte) error { 13 f, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) 14 if err != nil { 15 return errors.Wrap(err, onAppendFile) 16 } 17 defer f.Close() 18 19 n, err := f.Write(data) 20 if err != nil { 21 return errors.Wrap(err, onAppendFile) 22 } else if n != len(data) { 23 return fmt.Errorf("wrote %d bytes of %d required / "+onAppendFile, n, len(data)) 24 } 25 26 return nil 27 }