refactor: simplify `home.Dir()`

Andrey Nering created

* Realistically, this should almost never fail.
* If it does, returning `""` probably makes more sense than a temp dir.
  Empty means Go will assume the working directory.
* Getting rid of `sync.Once` is good as it locks and this can be called
  on every render cycle. (Used to compute `~` on the sidebar, etc).

Change summary

internal/home/home.go | 23 +++++------------------
1 file changed, 5 insertions(+), 18 deletions(-)

Detailed changes

internal/home/home.go 🔗

@@ -2,29 +2,16 @@
 package home
 
 import (
-	"log/slog"
 	"os"
 	"path/filepath"
 	"strings"
-	"sync"
 )
 
-// Dir returns the users home directory, or if it fails, tries to create a new
-// temporary directory and use that instead.
-var Dir = sync.OnceValue(func() string {
-	home, err := os.UserHomeDir()
-	if err == nil {
-		slog.Debug("user home directory", "home", home)
-		return home
-	}
-	tmp, err := os.MkdirTemp("crush", "")
-	if err != nil {
-		slog.Error("could not find the user home directory")
-		return ""
-	}
-	slog.Warn("could not find the user home directory, using a temporary one", "home", tmp)
-	return tmp
-})
+// Dir returns the user home directory.
+func Dir() string {
+	home, _ := os.UserHomeDir()
+	return home
+}
 
 // Short replaces the actual home path from [Dir] with `~`.
 func Short(p string) string {