summaryrefslogtreecommitdiffstats
path: root/pkg/app
diff options
context:
space:
mode:
authornullishamy <amy.codes@null.net>2022-08-01 20:05:35 +0100
committernullishamy <amy.codes@null.net>2022-08-01 20:05:35 +0100
commita658cd4076922fcc5746dd01ad3091477ee4e52a (patch)
tree64138eebf58938b29855691374b4c7d333ef07f6 /pkg/app
parent69718fb5577d8a6a542c76ee69211c74cd14431e (diff)
Factor out opening of recent repos
Diffstat (limited to 'pkg/app')
-rw-r--r--pkg/app/app.go45
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