file_write.go 629 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package filehelper
  2. import (
  3. log "github.com/sirupsen/logrus"
  4. "os"
  5. "sync"
  6. )
  7. var writeFileMutex sync.Mutex
  8. func WriteFile(filename string, out []byte) {
  9. writeFileMutex.Lock()
  10. defer writeFileMutex.Unlock()
  11. if _, err := os.Stat(filename); os.IsNotExist(err) {
  12. handle, err := os.Create(filename)
  13. handle.Close()
  14. if err != nil {
  15. log.WithFields(log.Fields{
  16. "error": err,
  17. }).Errorf("Failed to create %v", filename)
  18. return
  19. }
  20. }
  21. err := os.WriteFile(filename, out, 0600)
  22. if err != nil {
  23. log.WithFields(log.Fields{
  24. "error": err,
  25. }).Errorf("Failed to write session to %v", filename)
  26. return
  27. }
  28. }