diff options
Diffstat (limited to 'pkg/gui/controllers/helpers')
-rw-r--r-- | pkg/gui/controllers/helpers/refresh_helper.go | 4 | ||||
-rw-r--r-- | pkg/gui/controllers/helpers/worktree_helper.go | 37 |
2 files changed, 40 insertions, 1 deletions
diff --git a/pkg/gui/controllers/helpers/refresh_helper.go b/pkg/gui/controllers/helpers/refresh_helper.go index 2dc345881..e77e51a48 100644 --- a/pkg/gui/controllers/helpers/refresh_helper.go +++ b/pkg/gui/controllers/helpers/refresh_helper.go @@ -604,7 +604,9 @@ func (self *RefreshHelper) refreshStatus() { linkedWorktreeName = self.worktreeHelper.GetLinkedWorktreeName() } - status := presentation.FormatStatus(currentBranch, linkedWorktreeName, workingTreeState, self.c.Tr) + repoName := self.worktreeHelper.GetCurrentRepoName() + + status := presentation.FormatStatus(repoName, currentBranch, linkedWorktreeName, workingTreeState, self.c.Tr) self.c.SetViewContent(self.c.Views().Status, status) } diff --git a/pkg/gui/controllers/helpers/worktree_helper.go b/pkg/gui/controllers/helpers/worktree_helper.go index db59b1afe..bebf2cc66 100644 --- a/pkg/gui/controllers/helpers/worktree_helper.go +++ b/pkg/gui/controllers/helpers/worktree_helper.go @@ -3,7 +3,9 @@ package helpers import ( "errors" "io/fs" + "log" "os" + "path/filepath" "strings" "github.com/jesseduffield/gocui" @@ -263,3 +265,38 @@ func (self *WorktreeHelper) ViewBranchWorktreeOptions(branchName string, canChec }, }) } + +func (self *WorktreeHelper) GetCurrentRepoName() string { + pwd, err := os.Getwd() + if err != nil { + log.Fatalln(err.Error()) + } + + // check if .git is a file or a directory + gitPath := filepath.Join(pwd, ".git") + gitFileInfo, err := os.Stat(gitPath) + if err != nil { + log.Fatalln(err.Error()) + } + + // must be a worktree or bare repo + if !gitFileInfo.IsDir() { + worktreeGitPath, ok := git_commands.WorktreeGitPath(pwd) + if !ok { + return basePath() + } + + // now we just jump up three directories to get the repo name + return filepath.Base(filepath.Dir(filepath.Dir(filepath.Dir(worktreeGitPath)))) + } + + return basePath() +} + +func basePath() string { + pwd, err := os.Getwd() + if err != nil { + log.Fatalln(err.Error()) + } + return filepath.Base(pwd) +} |