feat: added kwargs and flags to pass to plugins
This commit is contained in:
parent
dc6a141ca1
commit
42c8fd7c1a
6 changed files with 95 additions and 7 deletions
34
internal/kwargs/kwargs.go
Normal file
34
internal/kwargs/kwargs.go
Normal 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"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue