diff options
author | nullishamy <amy.codes@null.net> | 2022-08-01 20:05:35 +0100 |
---|---|---|
committer | nullishamy <amy.codes@null.net> | 2022-08-01 20:05:35 +0100 |
commit | a658cd4076922fcc5746dd01ad3091477ee4e52a (patch) | |
tree | 64138eebf58938b29855691374b4c7d333ef07f6 /pkg/app | |
parent | 69718fb5577d8a6a542c76ee69211c74cd14431e (diff) |
Factor out opening of recent repos
Diffstat (limited to 'pkg/app')
-rw-r--r-- | pkg/app/app.go | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/pkg/app/app.go b/pkg/app/app.go index bf9b7b73e..019ac80d6 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -162,6 +162,18 @@ func isBareRepo(osCommand *oscommands.OSCommand) (bool, error) { return strconv.ParseBool(strings.TrimSpace(res)) } +func openRecentRepo(app *App) bool { + for _, repoDir := range app.Config.GetAppState().RecentRepos { + if isRepo, _ := isDirectoryAGitRepository(repoDir); isRepo { + if err := os.Chdir(repoDir); err == nil { + return true + } + } + } + + return false +} + func (app *App) setupRepo() (bool, error) { if err := app.validateGitVersion(); err != nil { return false, err @@ -205,17 +217,13 @@ func (app *App) setupRepo() (bool, error) { } if !shouldInitRepo { - // check if we have a recent repo we can open - for _, repoDir := range app.Config.GetAppState().RecentRepos { - if isRepo, _ := isDirectoryAGitRepository(repoDir); isRepo { - if err := os.Chdir(repoDir); err == nil { - return true, nil - } - } + // Attempt to open a recent repo, exit if no repo could be opened + if didOpenRepo := openRecentRepo(app); !didOpenRepo { + fmt.Println(app.Tr.NoRecentRepositories) + os.Exit(1) } - fmt.Println(app.Tr.NoRecentRepositories) - os.Exit(1) + return true, nil } if err := app.OSCommand.Cmd.New("git init " + initialBranch).Run(); err != nil { return false, err @@ -234,19 +242,16 @@ func (app *App) setupRepo() (bool, error) { shouldOpenRecent := strings.Trim(response, " \r\n") == "y" if shouldOpenRecent { - for _, repoDir := range app.Config.GetAppState().RecentRepos { - if isRepo, _ := isDirectoryAGitRepository(repoDir); isRepo { - if err := os.Chdir(repoDir); err == nil { - return true, nil - } - } + if didOpenRepo := openRecentRepo(app); !didOpenRepo { + fmt.Println(app.Tr.NoRecentRepositories) + os.Exit(1) } - - fmt.Println(app.Tr.NoRecentRepositories) - os.Exit(1) + + // We managed to open a recent repo, continue as usual + return true, nil + } else { + os.Exit(0) } - - os.Exit(0) } return false, nil |