mirror of
https://github.com/mjl-/mox.git
synced 2024-12-27 08:53:48 +03:00
5c33640aea
sooner or later, someone will notice one of these messages, which will lead us to a bug.
27 lines
698 B
Go
27 lines
698 B
Go
package store
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/mjl-/mox/mox-"
|
|
)
|
|
|
|
// CreateMessageTemp creates a temporary file for a message to be delivered.
|
|
// Caller is responsible for removing the temporary file on error, and for closing the file.
|
|
// Caller should ensure the contents of the file are synced to disk before
|
|
// attempting to deliver the message.
|
|
func CreateMessageTemp(pattern string) (*os.File, error) {
|
|
dir := mox.DataDirPath("tmp")
|
|
os.MkdirAll(dir, 0770)
|
|
f, err := os.CreateTemp(dir, pattern)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = f.Chmod(0660)
|
|
if err != nil {
|
|
xerr := f.Close()
|
|
xlog.Check(xerr, "closing temp message file after chmod error")
|
|
return nil, err
|
|
}
|
|
return f, err
|
|
}
|