Files
kopia/internal/tempfile/tempfile_unix_fallback.go
Julio López e3fc6e012d refactor(general): leverage os.CreateTemp (#4513)
* use `os.CreateTemp` in `tempfile.CreateAutoDelete`
* refactor `TestTempFile`: add `VerifyTempfile` test helper
* add test for `createUnixFallback`
* rename function to `tempfile.CreateAutoDelete`
* remove the `dir` parameter to `tempfile.CreateAutoDelete`,
  only an empty string was passed, apart from test cases.
* guard against panic in TestShadowCopy
2025-04-22 20:55:11 -07:00

27 lines
616 B
Go

//go:build linux || freebsd || darwin || openbsd
// +build linux freebsd darwin openbsd
package tempfile
import (
"os"
"github.com/pkg/errors"
)
// createUnixFallback creates a temporary file that does not need to be removed on close.
func createUnixFallback() (*os.File, error) {
f, err := os.CreateTemp("", "kt-")
if err != nil {
return nil, err //nolint:wrapcheck
}
// immediately remove/unlink the file while we keep the handle open.
if derr := os.Remove(f.Name()); derr != nil {
f.Close() //nolint:errcheck
return nil, errors.Wrap(derr, "unable to unlink temporary file")
}
return f, nil
}