diff options
| author | Jeff Carr <[email protected]> | 2025-09-03 13:54:12 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-03 13:54:12 -0500 |
| commit | fc25cd8b055c31b58dd199de7931ed047bbe99aa (patch) | |
| tree | 8669268f27d561bd78fce4c8c3f7a0db584d0ea7 /goSrcFind.go | |
| parent | cc5db9ba7ea3d4b636ea2870fe0a3f3decaa9177 (diff) | |
rewrite a standard ENV function
Diffstat (limited to 'goSrcFind.go')
| -rw-r--r-- | goSrcFind.go | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/goSrcFind.go b/goSrcFind.go deleted file mode 100644 index ba77a33..0000000 --- a/goSrcFind.go +++ /dev/null @@ -1,85 +0,0 @@ -package fhelp - -// returns whatever your golang source dir is -// If there is a go.work file in your parent, that directory will be returned -// otherwise, return ~/go/src - -import ( - "fmt" - "os" - "path/filepath" - - "go.wit.com/log" -) - -// look for a go.work file -// otherwise use ~/go/src -func findGoSrc() (string, error) { - pwd, err := os.Getwd() - // startpwd, _ := os.Getwd() - if err == nil { - // Check for go.work in the current directory and then move up until root - if pwd, err := digup(pwd); err == nil { - // found an existing go.work file - // os.Chdir(pwd) - return pwd, nil - } else { - // if there is an error looking for the go.work file - // default to using ~/go/src - // log.Info("forge.digup() err", pwd, err) - } - } else { - // this shouldn't really happen. maybe your working directory got deleted - log.Info("forge.findGoSrc() os.Getwd() was probably deleted", pwd, err) - } - - // there are no go.work files, resume the ~/go/src behavior from prior to golang 1.22 - pwd, err = useGoSrc() - return pwd, err -} - -// this is the 'old way" and works fine for me. I use it because I like the ~/go/src directory -// because I know exactly what is in it: GO stuff & nothing else -func useGoSrc() (string, error) { - homeDir, err := os.UserHomeDir() - if err != nil { - return "", err - } - pwd := filepath.Join(homeDir, "go/src") - err = os.MkdirAll(pwd, os.ModePerm) - return pwd, err -} - -func goWorkExists(dir string) bool { - var err error - workFilePath := filepath.Join(dir, "go.work") - if _, err = os.Stat(workFilePath); err == nil { - // log.Info("f.goWorkExists() found", workFilePath) - return true - } else if !os.IsNotExist(err) { - // log.Info("f.goWorkExists() missing", workFilePath) - return false - } - // probably false, but some other error - // log.Info("f.goWorkExists() os.Stat() error", err, workFilePath) - return false -} - -func digup(path string) (string, error) { - for { - workFilePath := filepath.Join(path, "go.work") - if _, err := os.Stat(workFilePath); err == nil { - return path, nil // Found the go.work file - } else if !os.IsNotExist(err) { - return "", err // An error other than not existing - } - - parentPath := filepath.Dir(path) - if parentPath == path { - break // Reached the filesystem root - } - path = parentPath - } - - return "", fmt.Errorf("no go.work file found") -} |
