summaryrefslogtreecommitdiff
path: root/update.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-27 14:41:57 -0600
committerJeff Carr <[email protected]>2024-11-27 14:41:57 -0600
commitc51b8c96b12de401cc277b97552f5f9df959c74e (patch)
treec9e34871de6325b60a8e1de055d4f62b4eaad43b /update.go
parentcedd7ea6f17451ca7eb8ae2cf2a243ba9c551430 (diff)
ideas on code structure
Diffstat (limited to 'update.go')
-rw-r--r--update.go102
1 files changed, 0 insertions, 102 deletions
diff --git a/update.go b/update.go
deleted file mode 100644
index 8e2a12b..0000000
--- a/update.go
+++ /dev/null
@@ -1,102 +0,0 @@
-package gitpb
-
-import (
- "path/filepath"
- "slices"
- "strings"
- "time"
-
- "go.wit.com/lib/gui/shell"
- "go.wit.com/log"
- 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 {
- // delete the old hash
- // r.DeleteByHash(hash)
- r.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)
- if result.Error != nil {
- log.Warn("git for-each-ref error:", result.Error)
- return result.Error
- }
-
- lines := result.Stdout
- // reverse the git order
- slices.Reverse(lines)
-
- var refName string
- var hash string
- var subject string
- var ctime time.Time
-
- for i, line := range lines {
- var parts []string
- parts = make([]string, 0)
- parts = strings.Split(line, "_,,,_")
- if len(parts) != 5 {
- log.Info("tag error:", i, parts)
- continue
- }
- refName = parts[3]
- hash = parts[0]
-
- ctime = getGitDateStamp(parts[1])
-
- subject = parts[4]
- }
-
- newr := Ref{
- Hash: hash,
- Subject: subject,
- RefName: refName,
- Ctime: timestamppb.New(ctime),
- }
-
- r.AppendRef(&newr)
- return nil
-}
-
-// converts a git for-each-ref date. "Wed Feb 7 10:13:38 2024 -0600"
-func getGitDateStamp(gitdefault string) time.Time {
- // now := time.Now().Format("Wed Feb 7 10:13:38 2024 -0600")
- const gitLayout = "Mon Jan 2 15:04:05 2006 -0700"
- tagTime, err := time.Parse(gitLayout, gitdefault)
- if err != nil {
- log.Warn("GOT THIS IN PARSE AAA." + gitdefault + ".AAA")
- log.Warn(err)
- return time.Now()
- }
- 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
-}