From 1ead02a6d3a76a71853eead2099b65fc320a1a43 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Mon, 18 Aug 2025 06:11:20 -0500 Subject: [PATCH] experiement with ~/.cache/forge/ --- reloadGitConfig.go | 12 +++++++++++- repo.new.go | 27 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/reloadGitConfig.go b/reloadGitConfig.go index 367bd69..623d505 100644 --- a/reloadGitConfig.go +++ b/reloadGitConfig.go @@ -138,8 +138,18 @@ func (repo *Repo) readGitConfig() error { default: log.Log(WARN, "unknown submodule line:", line) } + case "user": + // test, ok := rs.gitConfig.submodules[currentName] + switch key { + case "name": + log.Log(INFO, "name:", line) + case "email": + log.Log(INFO, "email:", line) + default: + log.Log(WARN, "unknown name line:", filename, line) + } default: - log.Log(WARN, "unknown line:", line) + log.Log(WARN, "unknown line:", filename, line) } } diff --git a/repo.new.go b/repo.new.go index 64cf897..5e3f8b4 100644 --- a/repo.new.go +++ b/repo.new.go @@ -68,3 +68,30 @@ func (all *Repos) AppendByGoPath(newr *Repo) bool { all.Append(newr) return true } + +func (all *Repos) NewRepo(fullpath string, namespace string) (*Repo, error) { + if r := all.FindByFullPath(fullpath); r != nil { + log.Info("gitpb.NewRepo() might already have namespace", r.GetNamespace()) + log.Info("gitpb.NewRepo() already has FullPath", r.FullPath) + // already had this gopath + return r, errors.New("gitpb.NewRepo() duplicate path " + fullpath) + } + + // add a new one here + newr := Repo{ + FullPath: fullpath, + Namespace: namespace, + } + newr.Times = new(GitTimes) + + // everything happens in here + newr.Reload() + + if all.AppendByFullPath(&newr) { + // worked + return &newr, nil + } + + // todo: use Repos.Lock() + return nil, errors.New("gitpb.NewRepo() append failed " + fullpath) +}