Quote glob exclude options
Put quotes around the glob exclude options to avoid accidentally expanding globs during execution. Change-Id: Ia6fc7fa7dbe1d75e97d6039642e1c89be027689a
This commit is contained in:
@@ -17,7 +17,6 @@ package common
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/bootstrap"
|
||||
@@ -113,10 +112,6 @@ func Glob(ctx AndroidModuleContext, globPattern string, excludes []string) []str
|
||||
|
||||
func GlobRule(ctx AndroidModuleContext, globPattern string, excludes []string,
|
||||
fileListFile, depFile string) {
|
||||
var excludeArgs []string
|
||||
for _, e := range excludes {
|
||||
excludeArgs = append(excludeArgs, "-e "+e)
|
||||
}
|
||||
|
||||
// Create a rule to rebuild fileListFile if a directory in depFile changes. fileListFile
|
||||
// will only be rewritten if it has changed, preventing unnecesary build.ninja regenerations.
|
||||
@@ -126,7 +121,7 @@ func GlobRule(ctx AndroidModuleContext, globPattern string, excludes []string,
|
||||
Implicits: []string{globCmd},
|
||||
Args: map[string]string{
|
||||
"glob": globPattern,
|
||||
"excludes": strings.Join(excludeArgs, " "),
|
||||
"excludes": JoinWithPrefixAndQuote(excludes, "-e "),
|
||||
},
|
||||
})
|
||||
|
||||
|
@@ -38,3 +38,30 @@ func JoinWithPrefix(strs []string, prefix string) string {
|
||||
}
|
||||
return string(ret)
|
||||
}
|
||||
|
||||
func JoinWithPrefixAndQuote(strs []string, prefix string) string {
|
||||
if len(strs) == 0 {
|
||||
return ""
|
||||
}
|
||||
|
||||
if len(strs) == 1 {
|
||||
return prefix + `"` + strs[0] + `"`
|
||||
}
|
||||
|
||||
n := len(" ") * (len(strs) - 1)
|
||||
for _, s := range strs {
|
||||
n += len(prefix) + len(s) + len(`""`)
|
||||
}
|
||||
|
||||
ret := make([]byte, 0, n)
|
||||
for i, s := range strs {
|
||||
if i != 0 {
|
||||
ret = append(ret, ' ')
|
||||
}
|
||||
ret = append(ret, prefix...)
|
||||
ret = append(ret, '"')
|
||||
ret = append(ret, s...)
|
||||
ret = append(ret, '"')
|
||||
}
|
||||
return string(ret)
|
||||
}
|
||||
|
Reference in New Issue
Block a user