summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-27 01:49:17 -0500
committerJeff Carr <[email protected]>2025-09-27 02:15:02 -0500
commitd01dc53022f27ef4550138eba1915ad472b11b0a (patch)
treea5bb8d715853ef4a9b98fdf64d658e4d862fa23a
parent8d04a42a2b5915b7681375e2593db33e713097a0 (diff)
restructure code
-rw-r--r--doRepos.go178
-rw-r--r--old.go120
-rw-r--r--scanReposDir.go (renamed from forgeDir.go)46
3 files changed, 166 insertions, 178 deletions
diff --git a/doRepos.go b/doRepos.go
index 74c7031..0c79704 100644
--- a/doRepos.go
+++ b/doRepos.go
@@ -2,8 +2,6 @@ package main
import (
"os"
- "path/filepath"
- "strings"
"time"
"go.wit.com/lib/gui/shell"
@@ -87,131 +85,6 @@ func doRepos() error {
return nil
}
-/*
-func doReposInit() {
- log.Info("do pull here")
- dirs, err := scanForgedDir(me.forge.Config.ReposDir)
- if err != nil {
- badExit(err)
- }
- os.Chdir(me.forge.Config.ReposDir)
-
- for _, dir := range dirs {
- // log.Info("found repo", i, dir)
- // repo, err := me.forge.AddNamespaceDir(ns string, fullpath string)
- repo, err := readGitPB(dir)
- if err != nil {
- log.Info(dir, err)
- continue
- }
-
- // check to see if 'git clone' has already been run
- _, err = os.Stat(filepath.Join(dir, "git.clone"))
- if os.IsNotExist(err) {
- log.Info("repo needs cloning:", repo.Namespace, repo.URL, dir)
- if err := tryGitClone(repo, dir); err == nil {
- continue
- }
-
- // check for GO lang specific 'git clone' redirects
- if pkgurl, err := forgepb.RunGoList(repo.Namespace); err == nil {
- log.Info("NEED TO TRY", pkgurl)
- // if repo, err := f.urlClone(gopath, pkgurl); repo != nil {
- // return repo, err
- // }
- if err := forgepb.RunGitClone("git.clone", dir, pkgurl); err == nil {
- } else {
- badExit(err)
- }
- } else {
- badExit(err)
- }
- } else {
- // log.Info("repo is already cloned", dir, repo.Namespace)
- }
- }
- okExit("")
-}
-*/
-
-func tryGitClone(repo *gitpb.Repo, dir string) error {
- if err := forgepb.RunGitClone("git.clone", dir, "https://"+repo.Namespace); err == nil {
- return nil
- }
- giturl, err := forgepb.FindGoImport("https://" + repo.Namespace)
- if err == nil {
- log.Info("TRY THIS INSTEAD!!!!", giturl)
- if err := forgepb.RunGitClone("git.clone", dir, giturl); err != nil {
- log.Info("git clone still failed", giturl, err)
- return err
- }
- return nil
- }
- log.Info("git clone failed", err)
- return err
-}
-
-// must be "/foo/bar/" + "git.clone/" and then have a .git/ dir
-func addGitRepoDir(dir string) (bool, error) {
- fullpath := filepath.Join(dir, "git.clone")
- if check := me.forge.Repos.FindByFullPath(fullpath); check != nil {
- // log.Info(oldr.Namespace, fullpath, "already added")
- return false, nil
- }
-
- var namespace string
- if oldr, err := readGitPB(dir); err == nil {
- namespace = oldr.Namespace
- } else {
- log.Info("readGitPB() failed", dir, err)
- namespace = strings.TrimPrefix(dir, "/home/repos")
- }
- namespace = strings.Trim(namespace, "/")
-
- // check to see if 'git clone' has already been run
- _, err := os.Stat(fullpath)
- if os.IsNotExist(err) {
- log.Info("repo needs cloning:", namespace, dir)
- return false, err
- }
- if repo, err := me.forge.AddNamespaceDir(namespace, fullpath); err == nil {
- log.Info("repo added", repo.FullPath)
- return true, nil
- } else {
- log.Info("repo add failed", repo.FullPath, err)
- return false, err
- }
- return false, err
-}
-
-/*
-func initForged() error {
- var changed bool
- log.Info("do pull here")
- dirs, err := scanForgedDir(me.forge.Config.ReposDir)
- if err != nil {
- return err
- }
- log.Printf("forged has %d repos\n", me.forge.Repos.Len())
- // me.forge.PrintHumanTable(me.forge.Repos)
-
- for _, dir := range dirs {
- fullpath := filepath.Join(dir, "git.clone")
- ok, err := addGitRepoDir(fullpath);
- if ok {
- changed = true
- }
- if err != nil {
- log.Info("repo add problem", fullpath, err)
- }
- }
- if changed {
- me.forge.SaveRepos()
- }
- return nil
-}
-*/
-
func verifyForged() {
var changed bool = false
for repo := range me.forge.Repos.IterAll() {
@@ -234,46 +107,19 @@ func verifyForged() {
}
}
-/*
-func doReposList() error {
- log.Info("do pull here")
- dirs, err := scanForgedDir(me.forge.Config.ReposDir)
- if err != nil {
- badExit(err)
- return err
+func tryGitClone(repo *gitpb.Repo, dir string) error {
+ if err := forgepb.RunGitClone("git.clone", dir, "https://"+repo.Namespace); err == nil {
+ return nil
}
-
- count := 0
- for _, dir := range dirs {
- // log.Info("found repo", i, dir)
- // repo, err := forge.AddNamespaceDir(ns string, fullpath string)
- oldr, err := readGitPB(dir)
- if err != nil {
- log.Info(dir, err)
- continue
- }
-
- fullpath := filepath.Join(dir, "git.clone")
-
- if check := me.forge.Repos.FindByFullPath(fullpath); check != nil {
- log.Info(oldr.Namespace, fullpath, "already added")
- continue
- }
-
- // check to see if 'git clone' has already been run
- _, err = os.Stat(fullpath)
- if os.IsNotExist(err) {
- // log.Info("repo needs cloning:", oldr.Namespace, repo.URL, dir)
- } else {
- log.Info("repo is already cloned", dir, oldr.Namespace)
- // me.forge.Repos.Append(newr)
- // break
- if count > 50 {
- // break
- }
- count += 1
+ giturl, err := forgepb.FindGoImport("https://" + repo.Namespace)
+ if err == nil {
+ log.Info("TRY THIS INSTEAD!!!!", giturl)
+ if err := forgepb.RunGitClone("git.clone", dir, giturl); err != nil {
+ log.Info("git clone still failed", giturl, err)
+ return err
}
+ return nil
}
- return nil
+ log.Info("git clone failed", err)
+ return err
}
-*/
diff --git a/old.go b/old.go
new file mode 100644
index 0000000..ed16e42
--- /dev/null
+++ b/old.go
@@ -0,0 +1,120 @@
+package main
+
+/*
+func doReposInit() {
+ log.Info("do pull here")
+ dirs, err := scanForgedDir(me.forge.Config.ReposDir)
+ if err != nil {
+ badExit(err)
+ }
+ os.Chdir(me.forge.Config.ReposDir)
+
+ for _, dir := range dirs {
+ // log.Info("found repo", i, dir)
+ // repo, err := me.forge.AddNamespaceDir(ns string, fullpath string)
+ repo, err := readGitPB(dir)
+ if err != nil {
+ log.Info(dir, err)
+ continue
+ }
+
+ // check to see if 'git clone' has already been run
+ _, err = os.Stat(filepath.Join(dir, "git.clone"))
+ if os.IsNotExist(err) {
+ log.Info("repo needs cloning:", repo.Namespace, repo.URL, dir)
+ if err := tryGitClone(repo, dir); err == nil {
+ continue
+ }
+
+ // check for GO lang specific 'git clone' redirects
+ if pkgurl, err := forgepb.RunGoList(repo.Namespace); err == nil {
+ log.Info("NEED TO TRY", pkgurl)
+ // if repo, err := f.urlClone(gopath, pkgurl); repo != nil {
+ // return repo, err
+ // }
+ if err := forgepb.RunGitClone("git.clone", dir, pkgurl); err == nil {
+ } else {
+ badExit(err)
+ }
+ } else {
+ badExit(err)
+ }
+ } else {
+ // log.Info("repo is already cloned", dir, repo.Namespace)
+ }
+ }
+ okExit("")
+}
+*/
+
+/*
+func initForged() error {
+ var changed bool
+ log.Info("do pull here")
+ dirs, err := scanForgedDir(me.forge.Config.ReposDir)
+ if err != nil {
+ return err
+ }
+ log.Printf("forged has %d repos\n", me.forge.Repos.Len())
+ // me.forge.PrintHumanTable(me.forge.Repos)
+
+ for _, dir := range dirs {
+ fullpath := filepath.Join(dir, "git.clone")
+ ok, err := addGitRepoDir(fullpath);
+ if ok {
+ changed = true
+ }
+ if err != nil {
+ log.Info("repo add problem", fullpath, err)
+ }
+ }
+ if changed {
+ me.forge.SaveRepos()
+ }
+ return nil
+}
+*/
+
+/*
+func doReposList() error {
+ log.Info("do pull here")
+ dirs, err := scanForgedDir(me.forge.Config.ReposDir)
+ if err != nil {
+ badExit(err)
+ return err
+ }
+
+ count := 0
+ for _, dir := range dirs {
+ // log.Info("found repo", i, dir)
+ // repo, err := forge.AddNamespaceDir(ns string, fullpath string)
+ oldr, err := readGitPB(dir)
+ if err != nil {
+ log.Info(dir, err)
+ continue
+ }
+
+ fullpath := filepath.Join(dir, "git.clone")
+
+ if check := me.forge.Repos.FindByFullPath(fullpath); check != nil {
+ log.Info(oldr.Namespace, fullpath, "already added")
+ continue
+ }
+
+ // check to see if 'git clone' has already been run
+ _, err = os.Stat(fullpath)
+ if os.IsNotExist(err) {
+ // log.Info("repo needs cloning:", oldr.Namespace, repo.URL, dir)
+ } else {
+ log.Info("repo is already cloned", dir, oldr.Namespace)
+ // me.forge.Repos.Append(newr)
+ // break
+ if count > 50 {
+ // break
+ }
+ count += 1
+ }
+ }
+ return nil
+}
+*/
diff --git a/forgeDir.go b/scanReposDir.go
index 5dc9ea8..9c62e55 100644
--- a/forgeDir.go
+++ b/scanReposDir.go
@@ -4,6 +4,7 @@ import (
"fmt"
"os"
"path/filepath"
+ "strings"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
@@ -70,25 +71,46 @@ func scanForgedDir(srcDir string) ([]string, error) {
}
return filepath.SkipDir
}
- // log.Info("BAD ?", path)
- // all = append(all, path)
- /*
- if ok, err := addGitRepoDir(path); ok {
- log.Info("added", path)
- } else {
- log.Info("err", path, err)
- }
- */
// todo: check if dir is empty here and delete dir?
return nil
})
- // probably always leave this here forever
- // this check, along with CheckDirty() makes sure you can safely delete ~/go/src or the go.work directory
- // because everything is either checked in or deleted. An important thing to know!
if trip {
log.Info("WARNING: junk in", srcDir)
}
return all, err
}
+
+// must be "/foo/bar/" + "git.clone/" and then have a .git/ dir
+func addGitRepoDir(dir string) (bool, error) {
+ fullpath := filepath.Join(dir, "git.clone")
+ if check := me.forge.Repos.FindByFullPath(fullpath); check != nil {
+ // log.Info(oldr.Namespace, fullpath, "already added")
+ return false, nil
+ }
+
+ var namespace string
+ if oldr, err := readGitPB(dir); err == nil {
+ namespace = oldr.Namespace
+ } else {
+ log.Info("readGitPB() failed", dir, err)
+ namespace = strings.TrimPrefix(dir, "/home/repos")
+ }
+ namespace = strings.Trim(namespace, "/")
+
+ // check to see if 'git clone' has already been run
+ _, err := os.Stat(fullpath)
+ if os.IsNotExist(err) {
+ log.Info("repo needs cloning:", namespace, dir)
+ return false, err
+ }
+ if repo, err := me.forge.AddNamespaceDir(namespace, fullpath); err == nil {
+ log.Info("repo added", repo.FullPath)
+ return true, nil
+ } else {
+ log.Info("repo add failed", repo.FullPath, err)
+ return false, err
+ }
+ return false, err
+}