Luncher/spm/tempdir.go
2025-02-03 15:52:19 +01:00

32 lines
723 B
Go

package spm
import (
"fmt"
"math/rand"
"os"
"path/filepath"
"sync"
"time"
)
var (
tempDirOnce sync.Once
tempDirPath string
)
// GetTempDir generates or retrieves a unique temp directory.
func GetTempDir() string {
tempDirOnce.Do(func() {
// Generate a unique temp directory name
rand.Seed(time.Now().UnixNano())
tempDirPath = filepath.Join(os.TempDir(), fmt.Sprintf("spm_temp_%d", rand.Intn(1000000)))
// Ensure the directory exists
if err := os.MkdirAll(tempDirPath, os.ModePerm); err != nil {
fmt.Printf("[ERROR] Failed to create temp directory: %v\n", err)
} else {
fmt.Printf("[INFO] Using temp directory: %s\n", tempDirPath)
}
})
return tempDirPath
}