Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b378c18d authored by Cole Faust's avatar Cole Faust
Browse files

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
parent c70be4b9
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -443,10 +443,8 @@ func (a *aqueryArtifactHandler) depsetContentHashes(inputDepsetIds []uint32) ([]

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

func (a *aqueryArtifactHandler) normalActionBuildStatement(actionEntry *analysis_v2_proto.Action) (*BuildStatement, error) {