package packages_test import ( "flag" "fmt" "os" "golang.org/x/tools/go/packages" ) // Example demonstrates how to load the packages specified on the // command line from source syntax. func Example() { flag.Parse() // Many tools pass their command-line arguments (after any flags) // uninterpreted to packages.Load so that it can interpret them // according to the conventions of the underlying build system. cfg := &packages.Config{Mode: packages.NeedFiles | packages.NeedSyntax} pkgs, err := packages.Load(cfg, flag.Args()...) if err != nil { fmt.Fprintf(os.Stderr, "load: %v\n", err) os.Exit(1) } if packages.PrintErrors(pkgs) > 0 { os.Exit(1) } // Print the names of the source files // for each package listed on the command line. for _, pkg := range pkgs { fmt.Println(pkg.ID, pkg.GoFiles) } }