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  }