mirror of
https://github.com/phishingclub/phishingclub.git
synced 2026-02-12 16:12:44 +00:00
37 lines
845 B
Go
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)
|
|
}
|