diff --git a/cmd/mg/.gitignore b/cmd/mg/.gitignore new file mode 100644 index 0000000..ba2906d --- /dev/null +++ b/cmd/mg/.gitignore @@ -0,0 +1 @@ +main diff --git a/cmd/mg/cmd/clone.go b/cmd/mg/cmd/clone.go index 5d1cefa..65fc74d 100644 --- a/cmd/mg/cmd/clone.go +++ b/cmd/mg/cmd/clone.go @@ -40,14 +40,16 @@ var ( for i := 0; i < jobs; i++ { go func() { for repo := range repoChan { - _, err := git.PlainOpenWithOptions(repo.Remote, &(git.PlainOpenOptions{DetectDotGit: true})) + _, err := git.PlainOpenWithOptions(repo.Path, &(git.PlainOpenOptions{DetectDotGit: true})) if err == nil { log.Printf("already cloned: %s\n", repo.Path) mutex.Lock() alreadyCloned++ mutex.Unlock() + wg.Done() + continue } else if err == git.ErrRepositoryNotExists { - log.Printf("attempting clone: %s\n", repo) + log.Printf("attempting clone: %s\n", repo.Path) _, err = git.PlainClone(repo.Path, false, &git.CloneOptions{ URL: repo.Remote, }) @@ -73,10 +75,12 @@ var ( } }() } + fmt.Println(len(conf.Repos)) for _, repo := range conf.Repos { repoChan <- repo } close(repoChan) + fmt.Println("waiting...") wg.Wait() for _, err := range errs { log.Printf("error pulling %s: %s\n", err.Repo, err.Error)