plugins parse flags

This commit is contained in:
Alexander Wang 2022-12-30 16:22:40 -08:00
parent a92e7211a7
commit 4c7398ba11
No known key found for this signature in database
GPG key ID: D89FA31966BDBECE

View file

@ -21,6 +21,13 @@ import (
// Also see execPlugin in exec.go for the d2 binary plugin protocol.
func Serve(p Plugin) xmain.RunFunc {
return func(ctx context.Context, ms *xmain.State) (err error) {
fs, err := p.Flags(ctx)
if err != nil {
return err
}
for _, f := range fs {
f.AddToOpts(ms.Opts)
}
err = ms.Opts.Flags.Parse(ms.Opts.Args)
if !errors.Is(err, pflag.ErrHelp) && err != nil {
return xmain.UsageErrorf("failed to parse flags: %v", err)