2024-03-12 04:45:08 +00:00
|
|
|
package properties
|
|
|
|
|
|
|
|
import "github.com/mikefarah/yq/v4/pkg/yqlib"
|
|
|
|
|
|
|
|
type PropertiesPreferences struct {
|
|
|
|
UnwrapScalar bool
|
|
|
|
KeyValueSeparator string
|
|
|
|
UseArrayBrackets bool
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewDefaultPropertiesPreferences() PropertiesPreferences {
|
|
|
|
return PropertiesPreferences{
|
|
|
|
UnwrapScalar: true,
|
|
|
|
KeyValueSeparator: " = ",
|
|
|
|
UseArrayBrackets: false,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (p *PropertiesPreferences) Copy() PropertiesPreferences {
|
|
|
|
return PropertiesPreferences{
|
|
|
|
UnwrapScalar: p.UnwrapScalar,
|
|
|
|
KeyValueSeparator: p.KeyValueSeparator,
|
|
|
|
UseArrayBrackets: p.UseArrayBrackets,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-03-12 05:43:53 +00:00
|
|
|
var PropertiesFormat = &yqlib.Format{"props", []string{"p", "properties"}, "properties",
|
2024-03-12 04:45:08 +00:00
|
|
|
func() yqlib.Encoder { return NewPropertiesEncoder(ConfiguredPropertiesPreferences) },
|
|
|
|
func() yqlib.Decoder { return NewPropertiesDecoder() },
|
2024-03-12 05:43:53 +00:00
|
|
|
nil,
|
2024-03-12 04:45:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var propertyYqRules = []*yqlib.ParticipleYqRule{
|
2024-03-12 05:43:53 +00:00
|
|
|
{"PropertiesDecode", `from_?props|@propsd`, yqlib.CreateDecodeOpYqAction(PropertiesFormat), 0},
|
|
|
|
{"PropsEncode", `to_?props|@props`, yqlib.CreateEncodeOpYqAction(PropertiesFormat, 2), 0},
|
|
|
|
{"LoadProperties", `load_?props`, yqlib.CreateLoadOpYqAction(NewPropertiesDecoder()), 0},
|
2024-03-12 04:45:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func RegisterPropertiesFormat() {
|
|
|
|
yqlib.RegisterFormat(PropertiesFormat)
|
|
|
|
yqlib.RegisterRules(propertyYqRules)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var ConfiguredPropertiesPreferences = NewDefaultPropertiesPreferences()
|