fix plugin settings unmarshal by changing to "name.key".

This commit is contained in:
Miroslav Šedivý 2024-06-16 18:08:46 +02:00
parent 43467dcac1
commit 37b131c74c

View File

@ -3,6 +3,7 @@ package types
import (
"errors"
"fmt"
"strings"
"github.com/demodesk/neko/pkg/utils"
"github.com/spf13/cobra"
@ -74,8 +75,17 @@ func (p PluginSettings) Unmarshal(name string, def any) error {
if p == nil {
return fmt.Errorf("%w: %s", ErrPluginSettingsNotFound, name)
}
if _, ok := p[name]; !ok {
// loop through the plugin settings and take only the one that starts with the name
// because the settings are stored in a map["plugin_name.setting_name"] = value
newMap := make(map[string]any)
for k, v := range p {
if strings.HasPrefix(k, name+".") {
newMap[strings.TrimPrefix(k, name+".")] = v
}
}
fmt.Printf("newMap: %+v\n", newMap)
if len(newMap) == 0 {
return fmt.Errorf("%w: %s", ErrPluginSettingsNotFound, name)
}
return utils.Decode(p[name], def)
return utils.Decode(newMap, def)
}