package instruction import ( "fmt" "git.xdrm.io/go/nix-amer/internal/cnf" "strings" ) type config struct { raw string // File is the path to the file File string // Path is the configuration field path Path []string // Value if the value to add or update Value string // Format is the configuration format in use Format *cnf.ConfigurationFormat } func (d *config) Raw() string { return d.raw } func (d *config) Build(_args string) error { // 1. extract action (sub command) split := strings.Fields(_args) // 2. check path if len(split) < 2 { return fmt.Errorf("missing configuration path") } path := split[0] value := strings.Join(split[1:], "") // 3. check path separator splitPath := strings.Split(path, "@") if len(splitPath) > 2 { return fmt.Errorf("invalid path (additional '@'?)") } d.File = splitPath[0] if len(splitPath) > 1 { // add field path only if set d.Path = strings.Split(splitPath[1], ".") } // add value d.Value = value d.raw = _args return nil } func (d config) Exec(ctx ExecutionContext) ([]byte, error) { return nil, nil }