ideas on code structure

This commit is contained in:
Jeff Carr 2024-11-27 14:41:57 -06:00
parent cedd7ea6f1
commit c51b8c96b1
2 changed files with 31 additions and 31 deletions

View File

@ -1,7 +1,6 @@
package gitpb
import (
"path/filepath"
"slices"
"strings"
"time"
@ -11,21 +10,17 @@ import (
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)
// this is becoming a standard format
// todo: autogenerate this from the .proto file?
// Update version and timestamp.
// returns ok (ok == true if not found)
func (r *Repo) Update() error {
// Update repo.Refs from .git/
func (repo *Repo) UpdateGit() error {
// delete the old hash
// r.DeleteByHash(hash)
r.Refs = nil
repo.Refs = nil
tags := []string{"%(objectname)", "%(creatordate)", "%(*authordate)", "%(refname)", "%(subject)"}
format := strings.Join(tags, "_,,,_")
cmd := []string{"git", "for-each-ref", "--sort=taggerdate", "--format", format}
// log.Info("RUNNING:", strings.Join(cmd, " "))
result := shell.PathRunQuiet(r.FullPath, cmd)
result := shell.PathRunQuiet(repo.FullPath, cmd)
if result.Error != nil {
log.Warn("git for-each-ref error:", result.Error)
return result.Error
@ -63,7 +58,7 @@ func (r *Repo) Update() error {
Ctime: timestamppb.New(ctime),
}
r.AppendRef(&newr)
repo.AppendRef(&newr)
return nil
}
@ -79,24 +74,3 @@ func getGitDateStamp(gitdefault string) time.Time {
}
return tagTime
}
// scans in a new git repo. If it detects the repo is a golang project,
// then it parses the go.mod/go.sum files
// TODO: try adding python, rails, perl, rust, other language things?
// I probably will never have time to try that, but I'd take patches for anyone
// that might see this note and feel so inclined.
func (r *Repos) InitNewGoPath(basepath string, gopath string) *Repo {
if oldr := r.FindByPath(gopath); oldr != nil {
// already had this gopath
return oldr
}
// add a new one here
newr := Repo{
FullPath: filepath.Join(basepath, gopath),
GoPath: gopath,
}
newr.Update()
r.Append(&newr)
return &newr
}

26
repo.new.go Normal file
View File

@ -0,0 +1,26 @@
package gitpb
import (
"path/filepath"
)
// scans in a new git repo. If it detects the repo is a golang project,
// then it parses the go.mod/go.sum files
// TODO: try adding python, rails, perl, rust, other language things?
// I probably will never have time to try that, but I'd take patches for anyone
// that might see this note and feel so inclined.
func (r *Repos) InitNewGoPath(basepath string, gopath string) *Repo {
if oldr := r.FindByPath(gopath); oldr != nil {
// already had this gopath
return oldr
}
// add a new one here
newr := Repo{
FullPath: filepath.Join(basepath, gopath),
GoPath: gopath,
}
newr.UpdateGit()
r.Append(&newr)
return &newr
}