Merge "Support multiple filters in zipsync"
This commit is contained in:
@@ -29,10 +29,14 @@ import (
|
|||||||
var (
|
var (
|
||||||
outputDir = flag.String("d", "", "output dir")
|
outputDir = flag.String("d", "", "output dir")
|
||||||
outputFile = flag.String("l", "", "output list file")
|
outputFile = flag.String("l", "", "output list file")
|
||||||
filter = flag.String("f", "", "optional filter pattern")
|
|
||||||
zipPrefix = flag.String("zip-prefix", "", "optional prefix within the zip file to extract, stripping the prefix")
|
zipPrefix = flag.String("zip-prefix", "", "optional prefix within the zip file to extract, stripping the prefix")
|
||||||
|
filter multiFlag
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
flag.Var(&filter, "f", "optional filter pattern")
|
||||||
|
}
|
||||||
|
|
||||||
func must(err error) {
|
func must(err error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -107,13 +111,15 @@ func main() {
|
|||||||
}
|
}
|
||||||
name = strings.TrimPrefix(name, *zipPrefix)
|
name = strings.TrimPrefix(name, *zipPrefix)
|
||||||
}
|
}
|
||||||
if *filter != "" {
|
|
||||||
if match, err := filepath.Match(*filter, filepath.Base(name)); err != nil {
|
if filter != nil {
|
||||||
|
if match, err := filter.Match(filepath.Base(name)); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
} else if !match {
|
} else if !match {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if filepath.IsAbs(name) {
|
if filepath.IsAbs(name) {
|
||||||
log.Fatalf("%q in %q is an absolute path", name, input)
|
log.Fatalf("%q in %q is an absolute path", name, input)
|
||||||
}
|
}
|
||||||
@@ -151,3 +157,28 @@ func main() {
|
|||||||
must(ioutil.WriteFile(*outputFile, []byte(data), 0666))
|
must(ioutil.WriteFile(*outputFile, []byte(data), 0666))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type multiFlag []string
|
||||||
|
|
||||||
|
func (m *multiFlag) String() string {
|
||||||
|
return strings.Join(*m, " ")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *multiFlag) Set(s string) error {
|
||||||
|
*m = append(*m, s)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *multiFlag) Match(s string) (bool, error) {
|
||||||
|
if m == nil {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
for _, f := range *m {
|
||||||
|
if match, err := filepath.Match(f, s); err != nil {
|
||||||
|
return false, err
|
||||||
|
} else if match {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
@@ -30,7 +30,7 @@ var kotlinc = pctx.AndroidRemoteStaticRule("kotlinc", android.RemoteRuleSupports
|
|||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
Command: `rm -rf "$classesDir" "$headerClassesDir" "$srcJarDir" "$kotlinBuildFile" "$emptyDir" && ` +
|
Command: `rm -rf "$classesDir" "$headerClassesDir" "$srcJarDir" "$kotlinBuildFile" "$emptyDir" && ` +
|
||||||
`mkdir -p "$classesDir" "$headerClassesDir" "$srcJarDir" "$emptyDir" && ` +
|
`mkdir -p "$classesDir" "$headerClassesDir" "$srcJarDir" "$emptyDir" && ` +
|
||||||
`${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" $srcJars && ` +
|
`${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" -f "*.kt" $srcJars && ` +
|
||||||
`${config.GenKotlinBuildFileCmd} --classpath "$classpath" --name "$name"` +
|
`${config.GenKotlinBuildFileCmd} --classpath "$classpath" --name "$name"` +
|
||||||
` --out_dir "$classesDir" --srcs "$out.rsp" --srcs "$srcJarDir/list"` +
|
` --out_dir "$classesDir" --srcs "$out.rsp" --srcs "$srcJarDir/list"` +
|
||||||
` $commonSrcFilesArg --out "$kotlinBuildFile" && ` +
|
` $commonSrcFilesArg --out "$kotlinBuildFile" && ` +
|
||||||
|
Reference in New Issue
Block a user