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