summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornullishamy <amy.codes@null.net>2022-08-15 13:59:34 +0100
committernullishamy <amy.codes@null.net>2022-08-15 13:59:34 +0100
commit154bd975a6361cd84e870d8128a2352505353aac (patch)
treebdc0293f99a053d0ff2897f06d27e3b663b5527d
parent3016469708e1f7af9c90d6d65f2c76db7d3195e2 (diff)
Apply refactoring suggestions
-rw-r--r--pkg/app/app.go13
-rw-r--r--pkg/commands/git_commands/status.go24
-rw-r--r--pkg/gui/recent_repos_panel.go7
3 files changed, 25 insertions, 19 deletions
diff --git a/pkg/app/app.go b/pkg/app/app.go
index c5fe30d2e..d4be7a8e6 100644
--- a/pkg/app/app.go
+++ b/pkg/app/app.go
@@ -15,6 +15,7 @@ import (
"github.com/jesseduffield/generics/slices"
"github.com/jesseduffield/lazygit/pkg/commands"
+ "github.com/jesseduffield/lazygit/pkg/commands/git_commands"
"github.com/jesseduffield/lazygit/pkg/commands/git_config"
"github.com/jesseduffield/lazygit/pkg/commands/oscommands"
"github.com/jesseduffield/lazygit/pkg/common"
@@ -151,16 +152,6 @@ func isDirectoryAGitRepository(dir string) (bool, error) {
return info != nil, err
}
-func isBareRepo(osCommand *oscommands.OSCommand) (bool, error) {
- res, err := osCommand.Cmd.New("git rev-parse --is-bare-repository").DontLog().RunWithOutput()
-
- if err != nil {
- return false, err
- }
-
- // The command returns output with a newline, so we need to strip
- return strconv.ParseBool(strings.TrimSpace(res))
-}
func openRecentRepo(app *App) bool {
for _, repoDir := range app.Config.GetAppState().RecentRepos {
@@ -231,7 +222,7 @@ func (app *App) setupRepo() (bool, error) {
}
// Run this afterward so that the previous repo creation steps can run without this interfering
- if isBare, err := isBareRepo(app.OSCommand); isBare {
+ if isBare, err := git_commands.IsBareRepo(app.OSCommand); isBare {
if err != nil {
return false, err
}
diff --git a/pkg/commands/git_commands/status.go b/pkg/commands/git_commands/status.go
index 50b1fab57..d660dd8b0 100644
--- a/pkg/commands/git_commands/status.go
+++ b/pkg/commands/git_commands/status.go
@@ -2,8 +2,10 @@ package git_commands
import (
"path/filepath"
+ "strconv"
+ "strings"
- gogit "github.com/jesseduffield/go-git/v5"
+ "github.com/jesseduffield/lazygit/pkg/commands/oscommands"
"github.com/jesseduffield/lazygit/pkg/commands/types/enums"
)
@@ -49,13 +51,21 @@ func (self *StatusCommands) WorkingTreeState() enums.RebaseMode {
return enums.REBASE_MODE_NONE
}
+func (self *StatusCommands) IsBareRepo() (bool, error) {
+ return IsBareRepo(self.os)
+}
+
+func IsBareRepo(osCommand *oscommands.OSCommand) (bool, error) {
+ res, err := osCommand.Cmd.New("git rev-parse --is-bare-repository").DontLog().RunWithOutput()
+ if err != nil {
+ return false, err
+ }
+
+ // The command returns output with a newline, so we need to strip
+ return strconv.ParseBool(strings.TrimSpace(res))
+}
+
// IsInMergeState states whether we are still mid-merge
func (self *StatusCommands) IsInMergeState() (bool, error) {
return self.os.FileExists(filepath.Join(self.dotGitDir, "MERGE_HEAD"))
}
-
-func (self *StatusCommands) IsBareRepo() bool {
- // note: could use `git rev-parse --is-bare-repository` if we wanna drop go-git
- _, err := self.repo.Worktree()
- return err == gogit.ErrIsBareRepository
-}
diff --git a/pkg/gui/recent_repos_panel.go b/pkg/gui/recent_repos_panel.go
index 73d6e54c5..0225f591a 100644
--- a/pkg/gui/recent_repos_panel.go
+++ b/pkg/gui/recent_repos_panel.go
@@ -158,7 +158,12 @@ func (gui *Gui) dispatchSwitchToRepo(path string, reuse bool) error {
// updateRecentRepoList registers the fact that we opened lazygit in this repo,
// so that we can open the same repo via the 'recent repos' menu
func (gui *Gui) updateRecentRepoList() error {
- if gui.git.Status.IsBareRepo() {
+ isBareRepo, err := gui.git.Status.IsBareRepo()
+ if err != nil {
+ return err
+ }
+
+ if isBareRepo {
// we could totally do this but it would require storing both the git-dir and the
// worktree in our recent repos list, which is a change that would need to be
// backwards compatible