github.com/go-toolsmith/pkgload@v1.2.3-0.20240512101226-e704f55998f1/README.md (about) 1 # pkgload 2 3 [![build-img]][build-url] 4 [![pkg-img]][pkg-url] 5 [![reportcard-img]][reportcard-url] 6 [![version-img]][version-url] 7 8 Package `pkgload` is a set of utilities for `go/packages` load-related operations. 9 10 ## Installation: 11 12 Go version 1.17+ 13 14 ```bash 15 go get github.com/go-toolsmith/pkgload 16 ``` 17 18 ## Example 19 20 ```go 21 package main 22 23 import ( 24 "fmt" 25 "go/token" 26 27 "github.com/go-toolsmith/pkgload" 28 "golang.org/x/tools/go/packages" 29 ) 30 31 func main() { 32 fset := token.NewFileSet() 33 cfg := &packages.Config{ 34 Mode: packages.LoadSyntax, 35 Tests: true, 36 Fset: fset, 37 } 38 39 patterns := []string{"mypackage"} 40 pkgs, err := pkgload.LoadPackages(cfg, patterns) 41 if err != nil { 42 panic(err) 43 } 44 45 pkgs = pkgload.Deduplicate(pkgs) 46 47 pkgload.VisitUnits(pkgs, func(u *pkgload.Unit) { 48 pkgPath := u.NonNil().PkgPath 49 println(pkgPath) 50 }) 51 } 52 ``` 53 54 ## License 55 56 [MIT License](LICENSE). 57 58 [build-img]: https://github.com/go-toolsmith/pkgload/workflows/build/badge.svg 59 [build-url]: https://github.com/go-toolsmith/pkgload/actions 60 [pkg-img]: https://pkg.go.dev/badge/go-toolsmith/pkgload 61 [pkg-url]: https://pkg.go.dev/github.com/go-toolsmith/pkgload 62 [reportcard-img]: https://goreportcard.com/badge/go-toolsmith/pkgload 63 [reportcard-url]: https://goreportcard.com/report/go-toolsmith/pkgload 64 [version-img]: https://img.shields.io/github/v/release/go-toolsmith/pkgload 65 [version-url]: https://github.com/go-toolsmith/pkgload/releases