Simplify commandString

Use the same logic for both go and non-go actions. This also has a
slight performance improvement for go actions by allocating the slice
in advance instead of using append()

Test: Presubmits
Change-Id: I92b60c547d8470816a67ac1ef6e334fd5f547701
This commit is contained in:
Cole Faust 2023-10-24 10:21:49 -07:00
parent c70be4b986
commit b378c18ddf

View file

@ -443,10 +443,8 @@ func (a *aqueryArtifactHandler) depsetContentHashes(inputDepsetIds []uint32) ([]
// escapes the args received from aquery and creates a command string // escapes the args received from aquery and creates a command string
func commandString(actionEntry *analysis_v2_proto.Action) string { func commandString(actionEntry *analysis_v2_proto.Action) string {
switch actionEntry.Mnemonic { argsEscaped := make([]string, len(actionEntry.Arguments))
case "GoCompilePkg", "GoStdlib": for i, arg := range actionEntry.Arguments {
argsEscaped := []string{}
for _, arg := range actionEntry.Arguments {
if arg == "" { if arg == "" {
// If this is an empty string, add '' // If this is an empty string, add ''
// And not // And not
@ -454,15 +452,12 @@ func commandString(actionEntry *analysis_v2_proto.Action) string {
// 2. `''\'''\'''` (escaped version of '') // 2. `''\'''\'''` (escaped version of '')
// //
// If we had used (1), then this would appear as a whitespace when we strings.Join // If we had used (1), then this would appear as a whitespace when we strings.Join
argsEscaped = append(argsEscaped, "''") argsEscaped[i] = "''"
} else { } else {
argsEscaped = append(argsEscaped, proptools.ShellEscapeIncludingSpaces(arg)) argsEscaped[i] = proptools.ShellEscapeIncludingSpaces(arg)
} }
} }
return strings.Join(argsEscaped, " ") return strings.Join(argsEscaped, " ")
default:
return strings.Join(proptools.ShellEscapeListIncludingSpaces(actionEntry.Arguments), " ")
}
} }
func (a *aqueryArtifactHandler) normalActionBuildStatement(actionEntry *analysis_v2_proto.Action) (*BuildStatement, error) { func (a *aqueryArtifactHandler) normalActionBuildStatement(actionEntry *analysis_v2_proto.Action) (*BuildStatement, error) {