package io import ( "fmt" "log" "os" "gitlab.com/urkob/go-cert-gen/pkg/io" ) type writer struct { dirPath string } // WriteFile writes file into `w writer` directory. // Returns outputPath and error func (w writer) WriteFile(filename string, data []byte) (string, error) { if filename == "" { return "", fmt.Errorf("filename cannot be empty") } if w.dirPath == "" { return "", fmt.Errorf("export directory cannot be empty") } if err := os.MkdirAll(w.dirPath, 0o755); err != nil { return "", err } log.Println("to write file") outputPath := w.dirPath + "/" + filename if err := os.WriteFile(outputPath, data, 0o600); err != nil { return "", err } log.Println("file written") return outputPath, nil } func NewWriter(dirPath string) io.WriterIface { return newWriter(dirPath) } func newWriter(dirPath string) *writer { return &writer{ dirPath: dirPath, } }