30 lines
760 B
Go
30 lines
760 B
Go
//go:build linux || freebsd
|
|||
|
|
// +build linux freebsd
|
||
|
|
|
||
|
|
package output
|
||
|
|
|
||
|
|
import (
|
||
|
|
"os"
|
||
|
|
"path/filepath"
|
||
|
|
)
|
||
|
|
|
||
|
|
// CreateTempFile creates a temporary file in the specified directory for atomic writes.
|
||
|
|
func CreateTempFile(dir, pattern string) (*os.File, error) {
|
||
|
|
return os.CreateTemp(dir, pattern)
|
||
|
|
}
|
||
|
|
|
||
|
|
// AtomicReplace atomically renames a temporary file to its final destination.
|
||
|
|
func AtomicReplace(tempPath, finalPath string) error {
|
||
|
|
return os.Rename(tempPath, finalPath)
|
||
|
|
}
|
||
|
|
|
||
|
|
// CleanupTempFile removes a temporary file at the given path.
|
||
|
|
func CleanupTempFile(path string) error {
|
||
|
|
return os.Remove(path)
|
||
|
|
}
|
||
|
|
|
||
|
|
// GetTempDir returns the directory portion of the given path for temporary file placement.
|
||
|
|
func GetTempDir(path string) string {
|
||
|
|
return filepath.Dir(path)
|
||
|
|
}
|