summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-25 02:23:56 -0600
committerJeff Carr <[email protected]>2024-01-25 02:23:56 -0600
commit86136ce6152d2125a53fa98adb6e6ed4db949190 (patch)
tree25131c5dc1c0fa7f10ee9a30c894d1d185db9e6f
parent4beeb0bb137bf179064354fa6fc3be2c951bdef6 (diff)
avoid a few nil'sv0.13.4
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--git.go14
-rw-r--r--gitConfig.go8
-rw-r--r--new.go5
-rw-r--r--unix.go13
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) {