Merge "Load a list of plugins from vendor/google_clockwork" into main

This commit is contained in:
Cole Faust
2023-10-20 22:00:16 +00:00
committed by Gerrit Code Review

View File

@@ -16,8 +16,6 @@ package android
import ( import (
"encoding/json" "encoding/json"
"fmt"
"io/ioutil"
"os" "os"
"strings" "strings"
@@ -72,31 +70,34 @@ var allowedPluginsByName = map[string]bool{
"xsdc-soong-rules": true, "xsdc-soong-rules": true,
} }
const ( var internalPluginsPaths = []string{
internalPluginsPath = "vendor/google/build/soong/internal_plugins.json" "vendor/google/build/soong/internal_plugins.json",
) "vendor/google_clockwork/build/internal_plugins.json",
}
type pluginProvider interface { type pluginProvider interface {
IsPluginFor(string) bool IsPluginFor(string) bool
} }
func maybeAddInternalPluginsToAllowlist(ctx SingletonContext) { func maybeAddInternalPluginsToAllowlist(ctx SingletonContext) {
for _, internalPluginsPath := range internalPluginsPaths {
if path := ExistentPathForSource(ctx, internalPluginsPath); path.Valid() { if path := ExistentPathForSource(ctx, internalPluginsPath); path.Valid() {
ctx.AddNinjaFileDeps(path.String()) ctx.AddNinjaFileDeps(path.String())
absPath := absolutePath(path.String()) absPath := absolutePath(path.String())
var moreAllowed map[string]bool var moreAllowed map[string]bool
data, err := ioutil.ReadFile(absPath) data, err := os.ReadFile(absPath)
if err != nil { if err != nil {
ctx.Errorf("Failed to open internal plugins path %q %q", internalPluginsPath, err) ctx.Errorf("Failed to open internal plugins path %q %q", internalPluginsPath, err)
} }
if err := json.Unmarshal(data, &moreAllowed); err != nil { if err := json.Unmarshal(data, &moreAllowed); err != nil {
fmt.Fprintf(os.Stderr, "Internal plugins file %q did not parse correctly: %q", data, err) ctx.Errorf("Internal plugins file %q did not parse correctly: %q", data, err)
} }
for k, v := range moreAllowed { for k, v := range moreAllowed {
allowedPluginsByName[k] = v allowedPluginsByName[k] = v
} }
} }
} }
}
func (p *pluginSingleton) GenerateBuildActions(ctx SingletonContext) { func (p *pluginSingleton) GenerateBuildActions(ctx SingletonContext) {
for _, p := range ctx.DeviceConfig().BuildBrokenPluginValidation() { for _, p := range ctx.DeviceConfig().BuildBrokenPluginValidation() {