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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
"github.com/google/blueprint"
|
||||||
"github.com/google/blueprint/bootstrap"
|
"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,
|
func GlobRule(ctx AndroidModuleContext, globPattern string, excludes []string,
|
||||||
fileListFile, depFile 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
|
// 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.
|
// 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},
|
Implicits: []string{globCmd},
|
||||||
Args: map[string]string{
|
Args: map[string]string{
|
||||||
"glob": globPattern,
|
"glob": globPattern,
|
||||||
"excludes": strings.Join(excludeArgs, " "),
|
"excludes": JoinWithPrefixAndQuote(excludes, "-e "),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@@ -38,3 +38,30 @@ func JoinWithPrefix(strs []string, prefix string) string {
|
|||||||
}
|
}
|
||||||
return string(ret)
|
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