feat: added kwargs and flags to pass to plugins

This commit is contained in:
David Allen 2025-09-01 18:59:12 -06:00
parent dc6a141ca1
commit 42c8fd7c1a
Signed by: towk
GPG key ID: 0430CDBE22619155
6 changed files with 95 additions and 7 deletions

34
internal/kwargs/kwargs.go Normal file
View file

@ -0,0 +1,34 @@
package kwargs
import (
"encoding/json"
"fmt"
"git.towk2.me/towk/makeshift/internal/format"
)
const RESERVED_KEY = "kwargs"
type KWArgs map[string]any
func (kw KWArgs) String() string {
b, _ := json.Marshal(kw)
return string(b)
}
func (kw *KWArgs) Set(v string /* should be JSON object*/) error {
var (
newArgs KWArgs
err error
)
err = format.Unmarshal([]byte(v), &newArgs, format.JSON)
if err != nil {
return fmt.Errorf("failed to unmarshal value for %s: %w", kw.Type(), err)
}
*kw = newArgs
return nil
}
func (kw *KWArgs) Type() string {
return "KWArgs"
}