Files
cunicu/pkg/config/order.go
2022-10-07 18:30:50 +02:00

37 lines
679 B
Go

package config
import (
"fmt"
"gopkg.in/yaml.v3"
)
type stringMapSlice []string
func (keys *stringMapSlice) UnmarshalYAML(v *yaml.Node) error {
if v.Kind != yaml.MappingNode {
return fmt.Errorf("pipeline must contain YAML mapping, has %v", v.Kind)
}
*keys = make([]string, len(v.Content)/2)
for i := 0; i < len(v.Content); i += 2 {
if err := v.Content[i].Decode(&(*keys)[i/2]); err != nil {
return err
}
}
return nil
}
func ExtractInterfaceOrder(buf []byte) ([]string, error) {
var s struct {
Interfaces stringMapSlice `yaml:"interfaces,omitempty"`
}
if err := yaml.Unmarshal(buf, &s); err != nil {
return nil, err
}
return s.Interfaces, nil
}