From f10c7cfb5c22870b5252b5662dbe997e59e57e4d Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Fri, 30 Dec 2022 17:30:25 -0800 Subject: [PATCH] ok --- d2plugin/plugin.go | 26 ++++++++++++++++++++++++++ d2plugin/serve.go | 28 +--------------------------- main.go | 2 +- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/d2plugin/plugin.go b/d2plugin/plugin.go index a8c894333..25eee8d08 100644 --- a/d2plugin/plugin.go +++ b/d2plugin/plugin.go @@ -7,6 +7,7 @@ package d2plugin import ( "context" + "encoding/json" "os/exec" "oss.terrastruct.com/util-go/xexec" @@ -166,3 +167,28 @@ func ListPluginFlags(ctx context.Context) ([]PluginSpecificFlag, error) { return out, nil } + +func HydratePluginOpts(ctx context.Context, ms *xmain.State, plugin Plugin) error { + opts := make(map[string]interface{}) + flags, err := plugin.Flags(ctx) + if err != nil { + return err + } + for _, f := range flags { + switch f.Type { + case "string": + val, _ := ms.Opts.Flags.GetString(f.Name) + opts[f.Tag] = val + case "int64": + val, _ := ms.Opts.Flags.GetInt64(f.Name) + opts[f.Tag] = val + } + } + + b, err := json.Marshal(opts) + if err != nil { + return err + } + + return plugin.HydrateOpts(b) +} diff --git a/d2plugin/serve.go b/d2plugin/serve.go index 888a6abfe..acc697a96 100644 --- a/d2plugin/serve.go +++ b/d2plugin/serve.go @@ -41,7 +41,7 @@ func Serve(p Plugin) xmain.RunFunc { return xmain.UsageErrorf("expected first argument to be subcmd name") } - err = ParsePluginOpts(ctx, ms, p) + err = HydratePluginOpts(ctx, ms, p) if err != nil { return err } @@ -135,29 +135,3 @@ func postProcess(ctx context.Context, p Plugin, ms *xmain.State) error { } return nil } - -func ParsePluginOpts(ctx context.Context, ms *xmain.State, plugin Plugin) error { - opts := make(map[string]interface{}) - flags, err := plugin.Flags(ctx) - if err != nil { - return err - } - for _, f := range flags { - switch f.Type { - case "string": - val, _ := ms.Opts.Flags.GetString(f.Name) - opts[f.Tag] = val - case "int64": - val, _ := ms.Opts.Flags.GetInt64(f.Name) - opts[f.Tag] = val - } - } - - b, err := json.Marshal(opts) - if err != nil { - return err - } - - err = plugin.HydrateOpts(b) - return err -} diff --git a/main.go b/main.go index 1ef9d1478..78041b71e 100644 --- a/main.go +++ b/main.go @@ -149,7 +149,7 @@ func run(ctx context.Context, ms *xmain.State) (err error) { return err } - err = d2plugin.ParsePluginOpts(ctx, ms, plugin) + err = d2plugin.HydratePluginOpts(ctx, ms, plugin) if err != nil { return err }