Skip to content

Commit

Permalink
Improve experience with package errors
Browse files Browse the repository at this point in the history
Signed-off-by: Chris Koch <[email protected]>
  • Loading branch information
hugelgupf committed Dec 25, 2022
1 parent 9d62eaa commit ce4fddb
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 2 deletions.
13 changes: 13 additions & 0 deletions deps.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ def go_dependencies():
sum = "h1:CVuJwN34x4xM2aT4sIKhmeib40NeBPhRihNjQmpJsA4=",
version = "v0.0.0-20200907032337-555d40f16ae2",
)
go_repository(
name = "com_github_hashicorp_errwrap",
importpath = "github.com/hashicorp/errwrap",
sum = "h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=",
version = "v1.0.0",
)
go_repository(
name = "com_github_hashicorp_go_multierror",
importpath = "github.com/hashicorp/go-multierror",
sum = "h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=",
version = "v1.1.1",
)

go_repository(
name = "com_github_u_root_uio",
importpath = "github.com/u-root/uio",
Expand Down
1 change: 1 addition & 0 deletions src/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ go 1.13

require (
github.com/google/goterm v0.0.0-20200907032337-555d40f16ae2
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/u-root/uio v0.0.0-20210528151154-e40b768296a7
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654
Expand Down
4 changes: 4 additions & 0 deletions src/go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
github.com/google/goterm v0.0.0-20200907032337-555d40f16ae2 h1:CVuJwN34x4xM2aT4sIKhmeib40NeBPhRihNjQmpJsA4=
github.com/google/goterm v0.0.0-20200907032337-555d40f16ae2/go.mod h1:nOFQdrUlIlx6M6ODdSpBj1NVA+VgLC6kmw60mkw34H4=
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/u-root/uio v0.0.0-20210528151154-e40b768296a7 h1:XMAtQHwKjWHIRwg+8Nj/rzUomQY1q6cM3ncA0wP8GU4=
github.com/u-root/uio v0.0.0-20210528151154-e40b768296a7/go.mod h1:LpEX5FO/cB+WF4TYGY1V5qktpaZLkKkSegbr0V4eYXA=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
Expand Down
1 change: 1 addition & 0 deletions src/pkg/bb/findpkg/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ go_library(
"@com_github_u_root_uio//ulog",
"@org_golang_x_sys//unix",
"@org_golang_x_tools//go/packages",
"@com_github_hashicorp_go_multierror//:go-multierror",
],
)

Expand Down
8 changes: 6 additions & 2 deletions src/pkg/bb/findpkg/bb.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"golang.org/x/sys/unix"
"golang.org/x/tools/go/packages"

"github.com/hashicorp/go-multierror"
"github.com/u-root/gobusybox/src/pkg/bb/bbinternal"
"github.com/u-root/gobusybox/src/pkg/golang"
"github.com/u-root/uio/ulog"
Expand Down Expand Up @@ -113,8 +114,11 @@ func loadFSPackages(l ulog.Logger, env golang.Environ, filesystemPaths []string)

func addPkg(l ulog.Logger, plist []*packages.Package, p *packages.Package) ([]*packages.Package, error) {
if len(p.Errors) > 0 {
packages.PrintErrors([]*packages.Package{p})
return plist, fmt.Errorf("failed to add package %v for errors:", p)
var merr error
for _, e := range p.Errors {
merr = multierror.Append(merr, e)
}
return plist, fmt.Errorf("failed to add package %v for errors: %v", p, merr)
} else if len(p.GoFiles) == 0 {
l.Printf("Skipping package %v because it has no Go files", p)
} else if p.Name != "main" {
Expand Down

0 comments on commit ce4fddb

Please sign in to comment.