Esempio n. 1
0
// Read analyzes a given key/value map to extract the configuration values valid
// for each plugin. All non-default values are written to the Settings member.
func (conf *PluginConfig) Read(values shared.MarshalMap) {
	var err error
	for key, settingValue := range values {
		switch key {
		case "ID":
			conf.ID, err = values.String("ID")

		case "Enable":
			conf.Enable, err = values.Bool("Enable")

		case "Instances":
			conf.Instances, err = values.Int("Instances")

		case "Stream":
			conf.Stream, err = values.StringArray("Stream")

		default:
			conf.Settings[key] = settingValue
		}
		if err != nil {
			Log.Error.Fatalf(err.Error())
		}
	}

	// Sanity checks
	if conf.Instances == 0 {
		conf.Enable = false
	}
	if len(conf.Stream) == 0 {
		conf.Stream = append(conf.Stream, "*")
	}
}