config-parser icon indicating copy to clipboard operation
config-parser copied to clipboard

Should be possible to obtain the lines for a single attribute path from the parser.

Open csabatuz-chess opened this issue 2 years ago • 1 comments

Assuming

import (
  parser "github.com/haproxytech/config-parser/v5"
)
...
  p := parser.New(content, options)

Currently it's possible to obtain the parsed models for all supported attributes like

log, err := p.Get(parser.Global, parser.GlobalSectionName, "log") // ([]types.Log, error)
...

It's also possible to update the data associated with the same attribute

err := p.Set(parser.Global, parser.GlobalSectionName, "log", log)

One can also render the full config using

p.String()

Proposal In one of our use cases, we would like to obtain the resulting lines from such updates for a given attribute path. So e.g.

lines, err := p.Render(parser.Global, parser.GlobalSectionName, "log")

Currently the lack of such granular access prevents us from effectively using the Config Parser code for our use case.

(Happily) wiling to contribute code if this feature makes sense.

csabatuz-chess avatar Nov 06 '23 14:11 csabatuz-chess

this is what Result function is doing in parsers right?, its just that is not exposed or available

if you are willing to contribute, we can discuss that (on objections on feature as long as it does not bring large complexity)

oktalz avatar Nov 10 '23 09:11 oktalz