Controllers: Make available as a target (#110357)
* Controllers: Add to build process * Allow setting through env variables
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/services/apiserver/standalone"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
// Operator represents an app operator that is available in the Grafana binary
|
||||
type Operator struct {
|
||||
Name string
|
||||
Description string
|
||||
RunFunc func(standalone.BuildInfo, *cli.Context, *setting.Cfg) error
|
||||
}
|
||||
|
||||
var operatorsRegistry []Operator
|
||||
|
||||
// RegisterOperator registers an app operator that is baked into the Grafana binary
|
||||
func RegisterOperator(operator Operator) {
|
||||
operatorsRegistry = append(operatorsRegistry, operator)
|
||||
}
|
||||
|
||||
// GetRegisteredOperators returns all registered operators
|
||||
func GetRegisteredOperators() []Operator {
|
||||
return operatorsRegistry
|
||||
}
|
||||
|
||||
// GetRegisteredOperatorNames returns the names of all registered operators
|
||||
func GetRegisteredOperatorNames() []string {
|
||||
names := make([]string, len(operatorsRegistry))
|
||||
for i, op := range operatorsRegistry {
|
||||
names[i] = op.Name
|
||||
}
|
||||
return names
|
||||
}
|
||||
Reference in New Issue
Block a user