From 86136ce6152d2125a53fa98adb6e6ed4db949190 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 25 Jan 2024 02:23:56 -0600 Subject: avoid a few nil's Signed-off-by: Jeff Carr --- git.go | 14 ++++++++++++++ gitConfig.go | 8 +++++++- new.go | 5 +++-- unix.go | 13 +++++++++++-- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/git.go b/git.go index 67def68..a004ef2 100644 --- a/git.go +++ b/git.go @@ -153,6 +153,20 @@ func (rs *RepoStatus) checkoutBranch(level string, branch string) { } func (rs *RepoStatus) SetMainWorkingName(s string) { + if rs == nil { + log.Info("rs == nil", s) + return + } + if rs.gitConfig == nil { + log.Info("rs.gitConfig == nil", s) + rs.mainWorkingName.SetValue(s) + return + } + if rs.gitConfig.branches == nil { + log.Info("rs.gitConfig.branches == nil", s) + rs.mainWorkingName.SetValue(s) + return + } _, ok := rs.gitConfig.branches[s] if ok { log.Info("git branch", s, "seems to exist") diff --git a/gitConfig.go b/gitConfig.go index d15b291..d30918c 100644 --- a/gitConfig.go +++ b/gitConfig.go @@ -79,7 +79,13 @@ func (rs *RepoStatus) readGitConfig() error { filename := filepath.Join(rs.realPath.String(), "/.git/config") file, err := os.Open(filename) if err != nil { - return nil + filename = filepath.Join(rs.realPath.String(), "../.git/config") + log.Log(WARN, "readGitConfig() trying up one directory instead", filename) + file, err = os.Open(filename) + if err != nil { + panic("couldn't open .git/config") + return nil + } } defer file.Close() diff --git a/new.go b/new.go index 5ee4aff..528594d 100644 --- a/new.go +++ b/new.go @@ -40,8 +40,9 @@ func NewRepoStatusWindow(path string) *RepoStatus { _, err = os.Open(filename) if err != nil { - log.Log(WARN, "Error reading:", filename, err) - return nil + log.Log(WARN, "Error reading .git/config:", filename, err) + log.Log(WARN, "TODO: find .git/config in parent directory") + // return nil } rs := New(gui.TreeRoot(), path) diff --git a/unix.go b/unix.go index 8c12ed8..47dde92 100644 --- a/unix.go +++ b/unix.go @@ -222,9 +222,18 @@ func VerifyLocalGoRepo(gorepo string) bool { // Form the path to the home Git directory gitDir := filepath.Join(usr.HomeDir, "go/src/", gorepo, ".git") - log.Log(WARN, "VerifyLocalGoRepo() checking directory:", gitDir) - return IsDirectory(gitDir) + if IsDirectory(gitDir) { + return true + } + goDir := filepath.Join(usr.HomeDir, "go/src/", gorepo) + gomod := goDir + "/go.mod" + log.Log(WARN, "VerifyLocalGoRepo() checking for go.mod :", gomod) + _, err = os.Stat(gomod) + if os.IsNotExist(err) { + return false + } + return true } func readFileToString(filename string) (string, error) { -- cgit v1.2.3