Files
phishingclub/backend/file/file.go
2025-08-21 16:14:09 +02:00

37 lines
845 B
Go

package file
import (
"fmt"
"io/fs"
"os"
)
// Write writes data to a file
type Writer interface {
Write(filepath string, data []byte, flag int, perm fs.FileMode) (int, error)
}
// Write writes data to a file
// returns bytes written or error
func Write(filepath string, data []byte, flag int, perm fs.FileMode) (int, error) {
// #nosec
file, err := os.OpenFile(filepath, flag, perm)
if err != nil {
return 0, fmt.Errorf("failed to create file: %w", err)
}
defer file.Close()
b, err := file.Write(data)
if err != nil {
return b, fmt.Errorf("failed to write to file: %w", err)
}
return b, nil
}
// FileWriter is a file writer
type FileWriter struct{}
// Write writes data to a file
func (w FileWriter) Write(filepath string, data []byte, flag int, perm fs.FileMode) (int, error) {
return Write(filepath, data, flag, perm)
}