runtime feature flag initialization
This commit is contained in:
parent
6b71da6b78
commit
5d2c99bb17
3 changed files with 21 additions and 4 deletions
|
@ -138,9 +138,15 @@ func main() {
|
|||
logFormatter := &log.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true}
|
||||
log.SetFormatter(logFormatter)
|
||||
|
||||
if err := fflag.InitCrowdsecFeatures(); err != nil {
|
||||
log.Fatalf("failed to initialize features: %s", err)
|
||||
}
|
||||
|
||||
// some features can require configuration or command-line options,
|
||||
// so we need to parse them asap. we'll load from feature.yaml later.
|
||||
fflag.CrowdsecFeatures.SetFromEnv("CROWDSEC_FEATURE_", log.StandardLogger())
|
||||
if err := fflag.CrowdsecFeatures.SetFromEnv("CROWDSEC_FEATURE_", log.StandardLogger()); err != nil {
|
||||
log.Fatalf("failed to set features from environment: %s", err)
|
||||
}
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "cscli",
|
||||
|
|
|
@ -314,6 +314,10 @@ func LoadConfig(cConfig *csconfig.Config) error {
|
|||
func LoadFeatureFlags(cConfig *csconfig.Config, logger *log.Logger) error {
|
||||
featurePath := filepath.Join(cConfig.ConfigPaths.ConfigDir, "feature.yaml")
|
||||
|
||||
if err := fflag.InitCrowdsecFeatures(); err != nil {
|
||||
log.Fatalf("failed to initialize features: %s", err)
|
||||
}
|
||||
|
||||
if err := fflag.CrowdsecFeatures.SetFromYamlFile(featurePath, logger); err != nil {
|
||||
return fmt.Errorf("file %s: %s", featurePath, err)
|
||||
}
|
||||
|
@ -356,7 +360,10 @@ var crowdsecT0 time.Time
|
|||
func main() {
|
||||
// some features can require configuration or command-line options,
|
||||
// so wwe need to parse them asap. we'll load from feature.yaml later.
|
||||
fflag.CrowdsecFeatures.SetFromEnv("CROWDSEC_FEATURE_", log.StandardLogger())
|
||||
if err := fflag.CrowdsecFeatures.SetFromEnv("CROWDSEC_FEATURE_", log.StandardLogger()); err != nil {
|
||||
log.Fatalf("failed set features from environment: %s", err)
|
||||
}
|
||||
|
||||
crowdsecT0 = time.Now()
|
||||
|
||||
defer types.CatchPanic("crowdsec/main")
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package fflag
|
||||
|
||||
var CrowdsecFeatures = FeatureMap{
|
||||
"cscli_setup": {},
|
||||
var CrowdsecFeatures FeatureMap
|
||||
|
||||
func InitCrowdsecFeatures() error {
|
||||
var err error
|
||||
CrowdsecFeatures, err = NewFeatureMap(map[string]FeatureFlag{"cscli_setup": {}})
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue