diff --git a/Makefile b/Makefile index 277c767..546d081 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ BUILDTIME = $(shell date +%Y.%m.%d_%H%M) all: build # ./forged pull # ./forged list - ./forged init | head + ./forged list build: goimports GO111MODULE=off go build \ diff --git a/doList.go b/doList.go new file mode 100644 index 0000000..7610d13 --- /dev/null +++ b/doList.go @@ -0,0 +1,10 @@ +package main + +import ( + "go.wit.com/log" +) + +func doList() any { + log.Info("do list here") + return nil +} diff --git a/doPull.go b/doPull.go deleted file mode 100644 index 2b9aef3..0000000 --- a/doPull.go +++ /dev/null @@ -1,201 +0,0 @@ -package main - -import ( - "os" - "path/filepath" - "strings" - - "go.wit.com/lib/protobuf/forgepb" - "go.wit.com/lib/protobuf/gitpb" - "go.wit.com/log" -) - -func doPull() { - log.Info("do pull here") - dirs, err := scanForgedDir(FORGEDIR) - if err != nil { - badExit(err) - } - os.Chdir(FORGEDIR) - forge := forgepb.InitPB() - log.Info("forge len", forge.Repos.Len()) - forge.PrintHumanTable(forge.Repos) - - for _, dir := range dirs { - // log.Info("found repo", i, dir) - // repo, err := 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 -} - -func initForged() *forgepb.Forge { - log.Info("do pull here") - dirs, err := scanForgedDir(FORGEDIR) - if err != nil { - badExit(err) - return nil - } - os.Chdir(FORGEDIR) - forge := forgepb.InitPB() - log.Printf("forged has %d repos\n", forge.Repos.Len()) - // forge.PrintHumanTable(forge.Repos) - - for _, dir := range dirs { - oldr, err := readGitPB(dir) - if err != nil { - log.Info("readGitPB() failed", dir, err) - continue - } - - fullpath := filepath.Join(dir, "git.clone") - - if check := 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, oldr.FullPath, dir) - } else { - log.Info("repo is already cloned", dir, oldr.Namespace) - } - } - - return forge -} - -func verifyForged(f *forgepb.Forge) { - var changed bool = false - for repo := range f.Repos.IterAll() { - if strings.HasPrefix(repo.GetFullPath(), os.Getenv("FORGE_GOSRC")) { - // log.Info(os.Getenv("FORGE_GOSRC"), repo.GetFullPath()) - } else { - log.Info("not here", os.Getenv("FORGE_GOSRC"), repo.GetFullPath()) - f.Repos.Delete(repo) - changed = true - } - } - if changed { - f.Repos.ConfigSave() - } -} - -func doInit() *forgepb.Forge { - forge := initForged() - verifyForged(forge) - - forge.PrintForgedTable(forge.Repos) - - return forge -} - -func doList() any { - log.Info("do pull here") - dirs, err := scanForgedDir(FORGEDIR) - if err != nil { - badExit(err) - return err - } - os.Chdir(FORGEDIR) - forge := forgepb.InitPB() - log.Info("forge len", forge.Repos.Len()) - forge.PrintHumanTable(forge.Repos) - - 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 := 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) - newr, err := forge.Repos.NewGoRepo(fullpath, oldr.Namespace) - if err != nil { - log.Info("repo add failed", err) - } - log.Info("REPO namespace:", newr.Namespace) - log.Info("REPO fullpath:", newr.FullPath) - log.Info("REPO URL:", newr.URL) - os.Chdir(newr.FullPath) - newr.Reload() - log.Info("NEWR namespace:", newr.Namespace) - log.Info("NEWR fullpath:", newr.FullPath) - log.Info("NEWR Master Branch:", newr.GetMasterBranchName()) - log.Info("NEWR URL:", newr.URL) - log.Info("repo scan worked", newr.Namespace, newr.GetMasterBranchName(), newr.URL) - // forge.Repos.Append(newr) - // break - if count > 50 { - // break - } - count += 1 - } - } - forge.PrintHumanTable(forge.Repos) - forge.Repos.ConfigSave() - okExit("") - return nil -} diff --git a/main.go b/main.go index 699f5d8..4e45f57 100644 --- a/main.go +++ b/main.go @@ -32,19 +32,8 @@ func main() { os.Setenv("FORGE_GOSRC", "/home/forge") } - if argv.Init != nil { - doInit() - okExit("") - } - if argv.List != nil { - exit(doList()) - okExit("") - } - - // forge = forgepb.Init() - if argv.Pull != nil { - doPull() + doList() okExit("") }