mirror of
https://github.com/kopia/kopia.git
synced 2026-04-04 22:33:20 -04:00
* 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
27 lines
616 B
Go
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
|
|
}
|