Skip to content

Commit 409ecbd

Browse files
jbedardfzakaria
andcommitted
fix(cli): check for query_file when running queries (#8166)
Synced from #814 by fzakaria: IntelliJ IDE uses a query with no arguments which seems to cause havoc when this is run via aspect. I added support to check for `--tool_tag` and not prompt the user for a query selection to better handle this usecase. Fixes #813 ### Changes are visible to end-users: yes - Searched for relevant documentation and updated as needed: yes - Breaking change (forces users to change their own code or config): no - Suggested release notes appear below: yes Support running queries via `--query_file` ### Test plan ``` > /Users/fzakaria/code/github.com/aspect-build/aspect-cli/bazel-bin/cmd/aspect/aspect_/aspect query --tool_tag=ijwb:IDEA:ultimate "--override_repository=intellij_aspect=/Users/fzakaria/Library/Application Support/JetBrains/IntelliJIdea2024.1/plugins/ijwb/aspect" --override_repository=intellij_aspect_template=/Users/fzakaria/code/github.com/confluentinc/ce-kafka/.ijwb/aspect --output=label_kind --keep_going --query_file=/Users/fzakaria/code/github.com/confluentinc/ce-kafka/.ijwb/queries/query-13438905584701813446 > echo $? 2 ``` Closes #814 Co-authored-by: Farid Zakaria <fzakaria@confluent.io> GitOrigin-RevId: bf38a5b5e7d9ace6eb7d7719887cde69fc125783
1 parent 124c558 commit 409ecbd

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

pkg/aspect/aquery/aquery.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func (runner *AQuery) Run(ctx context.Context, cmd *cobra.Command, args []string
6969
return shared.GetPrettyError(cmd, err)
7070
}
7171

72-
command, query, runReplacements, err := shared.SelectQuery(cmd.CalledAs(), presets, runner.Presets, presetNames, runner.Streams, nonFlags, runner.Select)
72+
command, query, runReplacements, err := shared.SelectQuery(cmd.CalledAs(), presets, runner.Presets, presetNames, runner.Streams, nonFlags, flags, runner.Select)
7373
if err != nil {
7474
return shared.GetPrettyError(cmd, err)
7575
}

pkg/aspect/cquery/cquery.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func (runner *CQuery) Run(ctx context.Context, cmd *cobra.Command, args []string
6969
return shared.GetPrettyError(cmd, err)
7070
}
7171

72-
command, query, runReplacements, err := shared.SelectQuery(cmd.CalledAs(), presets, runner.Presets, presetNames, runner.Streams, nonFlags, runner.Select)
72+
command, query, runReplacements, err := shared.SelectQuery(cmd.CalledAs(), presets, runner.Presets, presetNames, runner.Streams, nonFlags, flags, runner.Select)
7373
if err != nil {
7474
return shared.GetPrettyError(cmd, err)
7575
}

pkg/aspect/query/query.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func (runner *Query) Run(ctx context.Context, cmd *cobra.Command, args []string)
9797
return shared.GetPrettyError(cmd, err)
9898
}
9999

100-
command, query, runReplacements, err := shared.SelectQuery(cmd.CalledAs(), presets, runner.Presets, presetNames, runner.Streams, nonFlags, runner.Select)
100+
command, query, runReplacements, err := shared.SelectQuery(cmd.CalledAs(), presets, runner.Presets, presetNames, runner.Streams, nonFlags, flags, runner.Select)
101101
if err != nil {
102102
return shared.GetPrettyError(cmd, err)
103103
}

pkg/aspect/query/shared/query.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,20 @@ func SelectQuery(
202202
presetNames []string,
203203
streams ioutils.Streams,
204204
args []string,
205+
flags []string,
205206
s func(presetNames []string) SelectRunner,
206207
) (string, string, bool, error) {
207208

209+
hasQueryFile := false
210+
for _, flag := range flags {
211+
if strings.Contains(flag, "--query_file") {
212+
hasQueryFile = true
213+
break
214+
}
215+
}
216+
208217
var preset *PresetQuery
209-
if len(args) == 0 {
218+
if len(args) == 0 && !hasQueryFile {
210219
selectQueryPrompt := s(presetNames)
211220

212221
i, _, err := selectQueryPrompt.Run()
@@ -217,7 +226,10 @@ func SelectQuery(
217226

218227
preset = rawPresets[i]
219228
} else {
220-
maybeQueryOrPreset := args[0]
229+
maybeQueryOrPreset := ""
230+
if len(args) > 0 {
231+
maybeQueryOrPreset = args[0]
232+
}
221233
if value, ok := processedPresets[maybeQueryOrPreset]; ok {
222234
// Treat this as the name of the preset query, so don't prompt for it.
223235
fmt.Fprintf(streams.Stdout, "Preset query \"%s\" selected\n", value.Name)

0 commit comments

Comments
 (0)