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

Commit 3c5a1e9b authored by Cole Faust's avatar Cole Faust Committed by Automerger Merge Worker
Browse files

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

parents f55adc14 c9ef6f71
Loading
Loading
Loading
Loading
+19 −18
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@ package android

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"os"
	"strings"

@@ -72,31 +70,34 @@ var allowedPluginsByName = map[string]bool{
	"xsdc-soong-rules":                       true,
}

const (
	internalPluginsPath = "vendor/google/build/soong/internal_plugins.json"
)
var internalPluginsPaths = []string{
	"vendor/google/build/soong/internal_plugins.json",
	"vendor/google_clockwork/build/internal_plugins.json",
}

type pluginProvider interface {
	IsPluginFor(string) bool
}

func maybeAddInternalPluginsToAllowlist(ctx SingletonContext) {
	for _, internalPluginsPath := range internalPluginsPaths {
		if path := ExistentPathForSource(ctx, internalPluginsPath); path.Valid() {
			ctx.AddNinjaFileDeps(path.String())
			absPath := absolutePath(path.String())
			var moreAllowed map[string]bool
		data, err := ioutil.ReadFile(absPath)
			data, err := os.ReadFile(absPath)
			if err != nil {
				ctx.Errorf("Failed to open internal plugins path %q %q", internalPluginsPath, err)
			}
			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 {
				allowedPluginsByName[k] = v
			}
		}
	}
}

func (p *pluginSingleton) GenerateBuildActions(ctx SingletonContext) {
	for _, p := range ctx.DeviceConfig().BuildBrokenPluginValidation() {