on main help sign in
refactor: move `HomeDir()` to `fsext` package
commit172df744f4ebb1b5199839c670f52803d18ee426 authorAndrey Nering <andreynering@users.noreply.github.com> dateTue 19 Aug 2025, 15:05 (1 year ago) parent04d9ea3
4 files changed+23−18
internal/config/load.go−15 internal/fsext/home.go+20 internal/fsext/ls.go+1−2 internal/tui/components/dialogs/models/apikey.go+2−1
internal/config/load.go−15
@@ -1,19 +1,16 @@
11package config
22
33import (
4− "cmp"
54 "encoding/json"
65 "fmt"
76 "io"
87 "log/slog"
98 "maps"
109 "os"
11− "os/user"
1210 "path/filepath"
1311 "runtime"
1412 "slices"
1513 "strings"
16− "sync"
1714
1815 "github.com/charmbracelet/catwalk/pkg/catwalk"
1916 "github.com/charmbracelet/crush/internal/csync"
@@ -604,15 +601,3 @@ func GlobalConfigData() string {
604601
605602 return filepath.Join(os.Getenv("HOME"), ".local", "share", appName, fmt.Sprintf("%s.json", appName))
606603}
607−
608−var HomeDir = sync.OnceValue(func() string {
609− u, err := user.Current()
610− if err == nil {
611− return u.HomeDir
612− }
613− return cmp.Or(
614− os.Getenv("HOME"),
615− os.Getenv("USERPROFILE"),
616− os.Getenv("HOMEPATH"),
617− )
618−})
internal/fsext/home.gonew file+20
@@ -0,0 +1,20 @@
1+package fsext
2+
3+import (
4+ "cmp"
5+ "os"
6+ "os/user"
7+ "sync"
8+)
9+
10+var HomeDir = sync.OnceValue(func() string {
11+ u, err := user.Current()
12+ if err == nil {
13+ return u.HomeDir
14+ }
15+ return cmp.Or(
16+ os.Getenv("HOME"),
17+ os.Getenv("USERPROFILE"),
18+ os.Getenv("HOMEPATH"),
19+ )
20+})
internal/fsext/ls.go+1−2
@@ -8,7 +8,6 @@ import (
88 "sync"
99
1010 "github.com/charlievieth/fastwalk"
11− "github.com/charmbracelet/crush/internal/config"
1211 "github.com/charmbracelet/crush/internal/csync"
1312 ignore "github.com/sabhiram/go-gitignore"
1413)
@@ -74,7 +73,7 @@ var commonIgnorePatterns = sync.OnceValue(func() ignore.IgnoreParser {
7473})
7574
7675var homeIgnore = sync.OnceValue(func() ignore.IgnoreParser {
77− home := config.HomeDir()
76+ home := HomeDir()
7877 var lines []string
7978 for _, name := range []string{
8079 filepath.Join(home, ".gitignore"),
internal/tui/components/dialogs/models/apikey.go+2−1
@@ -8,6 +8,7 @@ import (
88 "github.com/charmbracelet/bubbles/v2/textinput"
99 tea "github.com/charmbracelet/bubbletea/v2"
1010 "github.com/charmbracelet/crush/internal/config"
11+ "github.com/charmbracelet/crush/internal/fsext"
1112 "github.com/charmbracelet/crush/internal/tui/styles"
1213 "github.com/charmbracelet/lipgloss/v2"
1314)
@@ -144,7 +145,7 @@ func (a *APIKeyInput) View() string {
144145 inputView := a.input.View()
145146
146147 dataPath := config.GlobalConfigData()
147− dataPath = strings.Replace(dataPath, config.HomeDir(), "~", 1)
148+ dataPath = strings.Replace(dataPath, fsext.HomeDir(), "~", 1)
148149 helpText := styles.CurrentTheme().S().Muted.
149150 Render(fmt.Sprintf("This will be written to the global configuration: %s", dataPath))
150151