Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: bazel #280

Merged
merged 14 commits into from
Sep 21, 2022
8 changes: 6 additions & 2 deletions cmd/aspect/aquery/aquery.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ import (
)

func NewDefaultAQueryCmd() *cobra.Command {
return NewAQueryCommand(ioutils.DefaultStreams, bazel.New())
return NewAQueryCommand(ioutils.DefaultStreams, bazel.FindFromWd)
}

func NewAQueryCommand(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
func NewAQueryCommand(streams ioutils.Streams, bzlProvider bazel.BazelProvider) *cobra.Command {
cmd := &cobra.Command{
Use: "aquery",
Short: "Executes an aquery.",
Expand All @@ -42,6 +42,10 @@ func NewAQueryCommand(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
flags.FlagsInterceptor(streams),
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
bzl, err := bzlProvider()
if err != nil {
return err
}
q := aquery.New(streams, bzl, true)
return q.Run(cmd, args)
},
Expand Down
8 changes: 6 additions & 2 deletions cmd/aspect/build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,15 @@ func NewDefaultBuildCmd(pluginSystem system.PluginSystem) *cobra.Command {
return NewBuildCmd(
ioutils.DefaultStreams,
pluginSystem,
bazel.New(),
bazel.FindFromWd,
)
}

// NewBuildCmd creates a new build cobra command.
func NewBuildCmd(
streams ioutils.Streams,
pluginSystem system.PluginSystem,
bzl bazel.Bazel,
bzlProvider bazel.BazelProvider,
) *cobra.Command {
return &cobra.Command{
Use: "build",
Expand All @@ -58,6 +58,10 @@ func NewBuildCmd(
pluginSystem.BuildHooksInterceptor(streams),
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
bzl, err := bzlProvider()
if err != nil {
return err
}
b := build.New(streams, bzl)
besBackend := bep.BESBackendFromContext(ctx)
return b.Run(args, besBackend)
Expand Down
8 changes: 6 additions & 2 deletions cmd/aspect/clean/clean.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ import (

// NewDefaultCleanCmd creates a new default clean cobra command.
func NewDefaultCleanCmd() *cobra.Command {
return NewCleanCmd(ioutils.DefaultStreams, bazel.New())
return NewCleanCmd(ioutils.DefaultStreams, bazel.FindFromWd)
}

// NewCleanCmd creates a new clean cobra command.
func NewCleanCmd(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
func NewCleanCmd(streams ioutils.Streams, bzlProvider bazel.BazelProvider) *cobra.Command {
var expunge bool
var expungeAsync bool

Expand Down Expand Up @@ -79,6 +79,10 @@ Workaround inconistent state:
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
isInteractive := isatty.IsTerminal(os.Stdout.Fd()) || isatty.IsCygwinTerminal(os.Stdout.Fd())
bzl, err := bzlProvider()
if err != nil {
return err
}
c := clean.NewDefault(streams, bzl, isInteractive)
c.Expunge = expunge
c.ExpungeAsync = expungeAsync
Expand Down
8 changes: 6 additions & 2 deletions cmd/aspect/cquery/cquery.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ import (
)

func NewDefaultCQueryCmd() *cobra.Command {
return NewCQueryCommand(ioutils.DefaultStreams, bazel.New())
return NewCQueryCommand(ioutils.DefaultStreams, bazel.FindFromWd)
}

func NewCQueryCommand(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
func NewCQueryCommand(streams ioutils.Streams, bzlProvider bazel.BazelProvider) *cobra.Command {
cmd := &cobra.Command{
Use: "cquery",
Short: "Executes a cquery.",
Expand All @@ -42,6 +42,10 @@ func NewCQueryCommand(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
flags.FlagsInterceptor(streams),
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
bzl, err := bzlProvider()
if err != nil {
return err
}
q := cquery.New(streams, bzl, true)
return q.Run(cmd, args)
},
Expand Down
8 changes: 6 additions & 2 deletions cmd/aspect/query/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ import (
)

func NewDefaultQueryCmd() *cobra.Command {
return NewQueryCommand(ioutils.DefaultStreams, bazel.New())
return NewQueryCommand(ioutils.DefaultStreams, bazel.FindFromWd)
}

func NewQueryCommand(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
func NewQueryCommand(streams ioutils.Streams, bzlProvider bazel.BazelProvider) *cobra.Command {
cmd := &cobra.Command{
Use: "query",
Short: "Executes a dependency graph query.",
Expand All @@ -42,6 +42,10 @@ func NewQueryCommand(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
flags.FlagsInterceptor(streams),
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
bzl, err := bzlProvider()
if err != nil {
return err
}
q := query.New(streams, bzl, true)
return q.Run(cmd, args)
},
Expand Down
8 changes: 6 additions & 2 deletions cmd/aspect/run/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ func NewDefaultRunCmd(pluginSystem system.PluginSystem) *cobra.Command {
return NewRunCmd(
ioutils.DefaultStreams,
pluginSystem,
bazel.New(),
bazel.FindFromWd,
)
}

func NewRunCmd(
streams ioutils.Streams,
pluginSystem system.PluginSystem,
bzl bazel.Bazel,
bzlProvider bazel.BazelProvider,
) *cobra.Command {
return &cobra.Command{
Use: "run",
Expand All @@ -63,6 +63,10 @@ use 'bazel run --script_path' to write a script and then execute it.
pluginSystem.RunHooksInterceptor(streams),
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
bzl, err := bzlProvider()
if err != nil {
return err
}
r := run.New(streams, bzl)
besBackend := bep.BESBackendFromContext(ctx)
return r.Run(args, besBackend)
Expand Down
8 changes: 6 additions & 2 deletions cmd/aspect/test/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ func NewDefaultTestCmd(pluginSystem system.PluginSystem) *cobra.Command {
return NewTestCmd(
ioutils.DefaultStreams,
pluginSystem,
bazel.New(),
bazel.FindFromWd,
)
}

func NewTestCmd(
streams ioutils.Streams,
pluginSystem system.PluginSystem,
bzl bazel.Bazel,
bzlProvider bazel.BazelProvider,
) *cobra.Command {
return &cobra.Command{
Use: "test",
Expand All @@ -66,6 +66,10 @@ specify targets.
pluginSystem.TestHooksInterceptor(streams),
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
bzl, err := bzlProvider()
if err != nil {
return err
}
t := test.New(streams, bzl)
besBackend := bep.BESBackendFromContext(ctx)
return t.Run(args, besBackend)
Expand Down
1 change: 1 addition & 0 deletions cmd/aspect/version/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ go_library(
"//pkg/aspect/root/flags",
"//pkg/aspect/version",
"//pkg/bazel",
"//pkg/bazel/workspace",
"//pkg/interceptors",
"//pkg/ioutils",
"@com_github_spf13_cobra//:cobra",
Expand Down
9 changes: 7 additions & 2 deletions cmd/aspect/version/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,16 @@ import (
"aspect.build/cli/pkg/aspect/root/flags"
"aspect.build/cli/pkg/aspect/version"
"aspect.build/cli/pkg/bazel"
"aspect.build/cli/pkg/bazel/workspace"
"aspect.build/cli/pkg/interceptors"
"aspect.build/cli/pkg/ioutils"
)

func NewDefaultVersionCmd() *cobra.Command {
return NewVersionCmd(ioutils.DefaultStreams, bazel.New())
return NewVersionCmd(ioutils.DefaultStreams, bazel.FindFromWd)
}

func NewVersionCmd(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
func NewVersionCmd(streams ioutils.Streams, bzlProvider bazel.BazelProvider) *cobra.Command {
v := version.New(streams)
v.BuildInfo = *buildinfo.Current()

Expand All @@ -46,6 +47,10 @@ func NewVersionCmd(streams ioutils.Streams, bzl bazel.Bazel) *cobra.Command {
flags.FlagsInterceptor(streams),
},
func(ctx context.Context, cmd *cobra.Command, args []string) (exitErr error) {
bzl, err := bzlProvider()
if err != nil && !workspace.IsNotFoundError(err) {
return err
}
return v.Run(bzl)
},
),
Expand Down
7 changes: 5 additions & 2 deletions pkg/aspect/analyzeprofile/analyzeprofile.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,12 @@ func New(streams ioutils.Streams) *AnalyzeProfile {
func (v *AnalyzeProfile) Run(ctx context.Context, _ *cobra.Command, args []string) error {
bazelCmd := []string{"analyze-profile"}
bazelCmd = append(bazelCmd, args...)
bzl := bazel.New()
bzl, err := bazel.FindFromWd()
if err != nil {
return err
}

if exitCode, err := bzl.Spawn(bazelCmd, v.Streams); exitCode != 0 {
if exitCode, err := bzl.RunCommand(bazelCmd, v.Streams); exitCode != 0 {
err = &aspecterrors.ExitError{
Err: err,
ExitCode: exitCode,
Expand Down
6 changes: 3 additions & 3 deletions pkg/aspect/aquery/aquery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func TestQuery(t *testing.T) {
spawner := bazel_mock.NewMockBazel(ctrl)
spawner.
EXPECT().
Spawn([]string{"aquery", "somepath(//cmd/aspect/query:query, @com_github_bazelbuild_bazelisk//core:go_default_library)"}, streams).
RunCommand([]string{"aquery", "somepath(//cmd/aspect/query:query, @com_github_bazelbuild_bazelisk//core:go_default_library)"}, streams).
Return(0, nil)

q := aquery.New(streams, spawner, true)
Expand Down Expand Up @@ -71,7 +71,7 @@ func TestQuery(t *testing.T) {
spawner := bazel_mock.NewMockBazel(ctrl)
spawner.
EXPECT().
Spawn([]string{"aquery", "somepath(//cmd/aspect/query:query, @com_github_bazelbuild_bazelisk//core:go_default_library)"}, streams).
RunCommand([]string{"aquery", "somepath(//cmd/aspect/query:query, @com_github_bazelbuild_bazelisk//core:go_default_library)"}, streams).
Return(0, nil)

promptRunner := query_mock.NewMockPromptRunner(ctrl)
Expand Down Expand Up @@ -167,7 +167,7 @@ func TestQuery(t *testing.T) {
spawner := bazel_mock.NewMockBazel(ctrl)
spawner.
EXPECT().
Spawn([]string{"aquery", "somepath(//cmd/aspect/query:query, @com_github_bazelbuild_bazelisk//core:go_default_library)"}, streams).
RunCommand([]string{"aquery", "somepath(//cmd/aspect/query:query, @com_github_bazelbuild_bazelisk//core:go_default_library)"}, streams).
Return(0, nil)

promptRunner := query_mock.NewMockPromptRunner(ctrl)
Expand Down
2 changes: 1 addition & 1 deletion pkg/aspect/build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func New(
// Event Protocol backend used by Aspect plugins to subscribe to build events.
func (b *Build) Run(args []string, besBackend bep.BESBackend) (exitErr error) {
besBackendFlag := fmt.Sprintf("--bes_backend=%s", besBackend.Addr())
exitCode, bazelErr := b.bzl.Spawn(append([]string{"build", besBackendFlag}, args...), b.Streams)
exitCode, bazelErr := b.bzl.RunCommand(append([]string{"build", besBackendFlag}, args...), b.Streams)

// Process the subscribers errors before the Bazel one.
subscriberErrors := besBackend.Errors()
Expand Down
6 changes: 3 additions & 3 deletions pkg/aspect/build/build_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func TestBuild(t *testing.T) {
}
bzl.
EXPECT().
Spawn([]string{"build", "--bes_backend=grpc://127.0.0.1:12345", "//..."}, streams).
RunCommand([]string{"build", "--bes_backend=grpc://127.0.0.1:12345", "//..."}, streams).
Return(expectErr.ExitCode, expectErr.Err)
besBackend := bep_mock.NewMockBESBackend(ctrl)
besBackend.
Expand Down Expand Up @@ -74,7 +74,7 @@ func TestBuild(t *testing.T) {
bzl := bazel_mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"build", "--bes_backend=grpc://127.0.0.1:12345", "//..."}, streams).
RunCommand([]string{"build", "--bes_backend=grpc://127.0.0.1:12345", "//..."}, streams).
Return(0, nil)
besBackend := bep_mock.NewMockBESBackend(ctrl)
besBackend.
Expand Down Expand Up @@ -107,7 +107,7 @@ func TestBuild(t *testing.T) {
bzl := bazel_mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"build", "--bes_backend=grpc://127.0.0.1:12345", "//..."}, streams).
RunCommand([]string{"build", "--bes_backend=grpc://127.0.0.1:12345", "//..."}, streams).
Return(0, nil)
besBackend := bep_mock.NewMockBESBackend(ctrl)
besBackend.
Expand Down
7 changes: 5 additions & 2 deletions pkg/aspect/canonicalizeflags/canonicalizeflags.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,12 @@ func New(streams ioutils.Streams) *CanonicalizeFlags {
func (v *CanonicalizeFlags) Run(ctx context.Context, _ *cobra.Command, args []string) error {
bazelCmd := []string{"canonicalize-flags"}
bazelCmd = append(bazelCmd, args...)
bzl := bazel.New()
bzl, err := bazel.FindFromWd()
if err != nil {
return err
}

if exitCode, err := bzl.Spawn(bazelCmd, v.Streams); exitCode != 0 {
if exitCode, err := bzl.RunCommand(bazelCmd, v.Streams); exitCode != 0 {
err = &aspecterrors.ExitError{
Err: err,
ExitCode: exitCode,
Expand Down
2 changes: 1 addition & 1 deletion pkg/aspect/clean/clean.go
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ func (c *Clean) Run(_ *cobra.Command, _ []string) error {
if c.ExpungeAsync {
cmd = append(cmd, "--expunge_async")
}
if exitCode, err := c.bzl.Spawn(cmd, c.Streams); exitCode != 0 {
if exitCode, err := c.bzl.RunCommand(cmd, c.Streams); exitCode != 0 {
err = &aspecterrors.ExitError{
Err: err,
ExitCode: exitCode,
Expand Down
12 changes: 6 additions & 6 deletions pkg/aspect/clean/clean_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ func TestClean(t *testing.T) {
bzl := mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"clean"}, streams).
RunCommand([]string{"clean"}, streams).
Return(0, nil)

b := clean.New(streams, bzl, false)
Expand All @@ -95,7 +95,7 @@ func TestClean(t *testing.T) {
bzl := mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"clean", "--expunge"}, streams).
RunCommand([]string{"clean", "--expunge"}, streams).
Return(0, nil)

b := clean.New(streams, bzl, false)
Expand All @@ -112,7 +112,7 @@ func TestClean(t *testing.T) {
bzl := mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"clean", "--expunge_async"}, streams).
RunCommand([]string{"clean", "--expunge_async"}, streams).
Return(0, nil)

b := clean.New(streams, bzl, false)
Expand All @@ -130,7 +130,7 @@ func TestClean(t *testing.T) {
bzl := mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"clean"}, streams).
RunCommand([]string{"clean"}, streams).
Return(0, nil)

b := clean.New(streams, bzl, true)
Expand All @@ -152,7 +152,7 @@ func TestClean(t *testing.T) {
bzl := mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"clean"}, streams).
RunCommand([]string{"clean"}, streams).
Return(0, nil).AnyTimes()

b := clean.New(streams, bzl, true)
Expand Down Expand Up @@ -211,7 +211,7 @@ func TestClean(t *testing.T) {
bzl := mock.NewMockBazel(ctrl)
bzl.
EXPECT().
Spawn([]string{"clean"}, streams).
RunCommand([]string{"clean"}, streams).
Return(0, nil)

c := clean.New(streams, bzl, true)
Expand Down
Loading