package main import ( "go.wit.com/log" ) func findRepos() bool { var done bool = false if argv.FindAll { findAll() done = true } if argv.FindPrivate { findPrivate() done = true } if argv.FindMine { findMine() done = true } if argv.FindFavorites { findFavorites() done = true } // this is the 'default' behavior when no command line arguments are given // if no argv was set, select repos marked as 'mine' if !done { findMine() done = true } return done } func findPrivate() { all := me.forge.Repos.SortByGoPath() for all.Scan() { repo := all.Next() if me.forge.Config.IsPrivate(repo.GoPath) { me.found.AppendUniqueGoPath(repo) } } } // finds repos that are writable func findMine() { // log.Printf("get mine %s\n", me.forge.GetGoSrc()) all := me.forge.Repos.SortByGoPath() for all.Scan() { repo := all.Next() if me.forge.Config.IsWritable(repo.GoPath) { me.found.AppendUniqueGoPath(repo) } } } // finds repos that are writable func findFavorites() { // log.Printf("get favorites %s\n", me.forge.GetGoSrc()) all := me.forge.Repos.SortByGoPath() for all.Scan() { repo := all.Next() if me.forge.Config.IsFavorite(repo.GoPath) { me.found.AppendUniqueGoPath(repo) } } } func findAll() { all := me.forge.Repos.SortByGoPath() for all.Scan() { repo := all.Next() me.found.AppendUniqueGoPath(repo) if me.forge.Config.IsReadOnly(repo.GoPath) && !argv.FindReadOnly { if repo.ReadOnly { continue } log.Info("todo: ConfigSave() readonly flag on repo is wrong", repo.GoPath) repo.ReadOnly = true configSave = true continue } } /* if configsave { log.Info("should ConfigSave here") me.forge.Repos.ConfigSave() } */ }