diff options
Diffstat (limited to 'goSrcScan.go')
| -rw-r--r-- | goSrcScan.go | 77 |
1 files changed, 43 insertions, 34 deletions
diff --git a/goSrcScan.go b/goSrcScan.go index 0f85c33..4e23fed 100644 --- a/goSrcScan.go +++ b/goSrcScan.go @@ -1,11 +1,13 @@ package forgepb import ( + "errors" "os" - "os/user" "path/filepath" "strings" + "github.com/destel/rill" + "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) @@ -15,47 +17,30 @@ func (f *Forge) ScanGoSrc() (bool, error) { return false, err } + var gopaths []string for _, dir := range dirs { if strings.HasPrefix(dir, f.goSrc) { gopath := strings.TrimPrefix(dir, f.goSrc) gopath = strings.Trim(gopath, "/") - // log.Info("ScanGoSrc() ok:", f.goSrc, gopath) - newr, err := f.Repos.NewGoPath(f.goSrc, gopath) - if err != nil { - log.Log(FORGEPBWARN, "init failed", err) - panic("crapnuts") - } - log.Info("init worked for", newr.GoPath) - // try to guess what the 'master' branch is - if newr.IsBranch("guimaster") { - newr.SetMasterBranchName("guimaster") - } else if newr.IsBranch("master") { - newr.SetMasterBranchName("master") - } else if newr.IsBranch("main") { - newr.SetMasterBranchName("main") - } else { - newr.SetMasterBranchName("masterFIXME") - } - - if newr.IsBranch("guidevel") { - newr.SetDevelBranchName("guidevel") - } else if newr.IsBranch("devel") { - newr.SetDevelBranchName("devel") - } else { - newr.SetDevelBranchName("develFIXME") - } - - usr, _ := user.Current() - uname := usr.Username - if newr.IsBranch(uname) { - newr.SetUserBranchName(uname) - } else { - newr.SetUserBranchName(uname + "FIXME") - } + gopaths = append(gopaths, gopath) } else { log.Log(FORGEPBWARN, "ScanGoSrc() bad:", dir) + return false, errors.New("forgepb.ScanGoSrc() bad dir: " + dir) } } + f.rillScanDirs(gopaths) + + /* + for _, dir := range dirs { + if strings.HasPrefix(dir, f.goSrc) { + gopath := strings.TrimPrefix(dir, f.goSrc) + gopath = strings.Trim(gopath, "/") + repo, err := f.Repos.NewGoPath(f.goSrc, gopath) + } else { + log.Log(FORGEPBWARN, "ScanGoSrc() bad:", dir) + } + } + */ return true, err } @@ -116,3 +101,27 @@ func rillAddDirs(gopaths []string) { fmt.Println("Error:", err) } */ + +// rill is awesome. long live rill +// attempt scan with rill +func (f *Forge) rillScanDirs(gopaths []string) error { + // Convert a slice of user IDs into a channel + ids := rill.FromSlice(gopaths, nil) + + // Read users from the API. + // Concurrency = 20 + dirs := rill.Map(ids, 20, func(id string) (*gitpb.Repo, error) { + return f.Repos.NewGoPath(f.goSrc, id) + }) + + // Activate users. + // Concurrency = 10 + err := rill.ForEach(dirs, 10, func(repo *gitpb.Repo) error { + // could do something here + // fmt.Printf("Repo found : %s\n", repo.GoPath) + // repo.Run([]string{"git", "pull"}) + return nil + }) + + return err +} |
