summaryrefslogtreecommitdiff
path: root/doRepos.go
diff options
context:
space:
mode:
Diffstat (limited to 'doRepos.go')
-rw-r--r--doRepos.go93
1 files changed, 64 insertions, 29 deletions
diff --git a/doRepos.go b/doRepos.go
index 000f35f..74c7031 100644
--- a/doRepos.go
+++ b/doRepos.go
@@ -3,6 +3,7 @@ package main
import (
"os"
"path/filepath"
+ "strings"
"time"
"go.wit.com/lib/gui/shell"
@@ -20,19 +21,30 @@ func doRepos() error {
}
if argv.Repos.Scan != nil {
- return initForged()
- // verifyForged()
- // return nil
+ log.Infof("start repos scan repos.Len()=%d %s\n", me.forge.Repos.Len(), me.forge.Config.ReposDir)
+ _, err := scanForgedDir(me.forge.Config.ReposDir)
+ me.forge.SaveRepos()
+ return err
}
if argv.Repos.Reload != nil {
- count := me.forge.RillReload()
- if count != 0 {
- me.forge.SaveRepos()
- log.Infof("%d repos changed\n", count)
- return nil
+ for repo := range me.forge.Repos.IterAll() {
+ if repo.GetMasterBranchName() == "" {
+ me.forge.VerifyBranchNames(repo)
+ log.Info("ABNORMAL: master branch name was blank in", repo.GetFullPath())
+ }
+
}
- log.Infof("no repos changed\n")
+ me.forge.SaveRepos()
+ /*
+ count := me.forge.RillReload()
+ if count != 0 {
+ me.forge.SaveRepos()
+ log.Infof("%d repos changed\n", count)
+ return nil
+ }
+ log.Infof("no repos changed\n")
+ */
return nil
}
@@ -75,6 +87,7 @@ func doRepos() error {
return nil
}
+/*
func doReposInit() {
log.Info("do pull here")
dirs, err := scanForgedDir(me.forge.Config.ReposDir)
@@ -119,6 +132,7 @@ func doReposInit() {
}
okExit("")
}
+*/
func tryGitClone(repo *gitpb.Repo, dir string) error {
if err := forgepb.RunGitClone("git.clone", dir, "https://"+repo.Namespace); err == nil {
@@ -137,6 +151,40 @@ func tryGitClone(repo *gitpb.Repo, dir string) error {
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")
@@ -149,28 +197,12 @@ func initForged() error {
for _, dir := range dirs {
fullpath := filepath.Join(dir, "git.clone")
- if check := me.forge.Repos.FindByFullPath(fullpath); check != nil {
- // log.Info(oldr.Namespace, fullpath, "already added")
- continue
+ ok, err := addGitRepoDir(fullpath);
+ if ok {
+ changed = true
}
-
- oldr, err := readGitPB(dir)
if err != nil {
- log.Info("readGitPB() failed", dir, err)
- 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)
- continue
- }
- if repo, err := me.forge.AddNamespaceDir(oldr.Namespace, fullpath); err == nil {
- log.Info("repo added", repo.FullPath)
- changed = true
- } else {
- log.Info("repo add failed", repo.FullPath, err)
+ log.Info("repo add problem", fullpath, err)
}
}
if changed {
@@ -178,6 +210,7 @@ func initForged() error {
}
return nil
}
+*/
func verifyForged() {
var changed bool = false
@@ -201,6 +234,7 @@ func verifyForged() {
}
}
+/*
func doReposList() error {
log.Info("do pull here")
dirs, err := scanForgedDir(me.forge.Config.ReposDir)
@@ -242,3 +276,4 @@ func doReposList() error {
}
return nil
}
+*/