homedir.go 614 B

123456789101112131415161718192021222324252627282930313233343536
  1. package sys
  2. import (
  3. "os"
  4. "runtime"
  5. )
  6. // HomeDir return user home directory
  7. func HomeDir() string {
  8. if dirname, err := os.UserHomeDir(); err == nil {
  9. return dirname
  10. }
  11. return os.TempDir()
  12. }
  13. // HiddenFile get hidden file prefix
  14. func HiddenFile(name string) string {
  15. switch runtime.GOOS {
  16. case "windows":
  17. return "~" + name
  18. default:
  19. return "." + name
  20. }
  21. }
  22. // CacheDir return user cache directory
  23. func CacheDir() string {
  24. if dirname, err := os.UserCacheDir(); err == nil {
  25. return dirname
  26. }
  27. return os.TempDir()
  28. }
  29. func TempFile() (*os.File, error) {
  30. return os.CreateTemp(os.TempDir(), "kos_*")
  31. }