package main import ( "go.wit.com/lib/protobuf/gitpb" ) // this populates a slice of protobuf records representing each git repo // var me.found []*gitpb.Repo // // so, it makes a subset of repos that are then used performing actions on // // by default, it adds every repo func (f *FindCmd) findRepos() { if f == nil { findMine() return } if f.All { findAll() return } if f.Private { findPrivate() return } if f.Mine { findMine() return } if f.Favorites { findFavorites() return } if f.Dirty { findDirty() return } findAll() } func findPrivate() { all := me.forge.Repos.SortByFullPath() for all.Scan() { repo := all.Next() if me.forge.Config.IsPrivate(repo.GetGoPath()) { me.found.AppendUniqueGoPath(repo) } } } // finds repos that are writable func findMine() { // log.Printf("get mine %s\n", me.forge.GetGoSrc()) all := me.forge.Repos.SortByFullPath() for all.Scan() { repo := all.Next() if me.forge.Config.IsWritable(repo.GetGoPath()) { me.found.AppendUniqueGoPath(repo) } } } // finds repos the user has marked as favorites in the forge .config func findFavorites() { // log.Printf("get favorites %s\n", me.forge.GetGoSrc()) all := me.forge.Repos.SortByFullPath() for all.Scan() { repo := all.Next() if me.forge.Config.IsFavorite(repo.GetGoPath()) { me.found.AppendUniqueGoPath(repo) } } } // finds repos that git is reporting as dirty func findDirty() { all := me.forge.Repos.SortByFullPath() for all.Scan() { var repo *gitpb.Repo repo = all.Next() if repo.IsDirty() { me.found.AppendUniqueGoPath(repo) } } } func findAll() { all := me.forge.Repos.SortByFullPath() for all.Scan() { repo := all.Next() me.found.AppendUniqueGoPath(repo) } }