abra/pkg/git/dir.go
decentral1se 4d7c812fe2
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
WIP: operator collaboration MVP
See toolshed/organising#467
2024-12-30 00:46:25 +01:00

36 lines
581 B
Go

package git
import (
"os"
"path"
"path/filepath"
"coopcloud.tech/abra/pkg/log"
)
func FindDir(dir string) string {
dir, err := filepath.Abs(dir)
if err != nil {
return ""
}
realPath, err := filepath.EvalSymlinks(dir)
if err != nil {
log.Warn("unable to find git repo: broken symlink: %s", dir)
return ""
}
dir = realPath
if dir == os.ExpandEnv("$HOME/.abra") || dir == os.ExpandEnv("$ABRA_DIR") || dir == "/" {
return ""
}
p := path.Join(dir, ".git")
if _, err := os.Stat(p); err == nil {
return path.Dir(p)
}
return FindDir(filepath.Dir(dir))
}