func runPkgs(cmd *command.Command, args []string) error { runtime.GOMAXPROCS(runtime.NumCPU()) if len(args) != 0 { cmd.Usage() return os.ErrInvalid } //pkgIndexOnce.Do(loadPkgsList) var pp PathPkgsIndex pp.LoadIndex() pp.Sort() if pkgsList { for _, pi := range pp.indexs { for _, pkg := range pi.pkgs { if pkgsPkgOnly && pkg.IsCommand() { continue } if pkgsJson { var p GoPackage p.copyBuild(pkg) b, err := json.MarshalIndent(&p, "", "\t") if err == nil { cmd.Stdout.Write(b) cmd.Stdout.Write([]byte{'\n'}) } } else { cmd.Println(pkg.ImportPath) } } } } else if pkgsFind != "" { for _, pi := range pp.indexs { for _, pkg := range pi.pkgs { if pkg.Name == pkgsFind { if pkgsPkgOnly && pkg.IsCommand() { continue } if pkgsJson { var p GoPackage p.copyBuild(pkg) b, err := json.MarshalIndent(p, "", "\t") if err == nil { cmd.Stdout.Write(b) cmd.Stdout.Write([]byte{'\n'}) } } else { cmd.Println(pkg.Name) } break } } } } return nil }