2022-11-16 04:48:19PM
This commit is contained in:
parent
06fa709461
commit
e1846b0e4a
3 changed files with 24 additions and 40 deletions
|
|
@ -32,9 +32,9 @@ See more docs and the source code at https://oss.terrastruct.com/d2
|
|||
}
|
||||
|
||||
func layoutHelp(ctx context.Context, ms *xmain.State) error {
|
||||
if len(ms.Opts.Args()) == 1 {
|
||||
if len(ms.Opts.Flags.Args()) == 1 {
|
||||
return shortLayoutHelp(ctx, ms)
|
||||
} else if len(ms.Opts.Args()) == 2 {
|
||||
} else if len(ms.Opts.Flags.Args()) == 2 {
|
||||
return longLayoutHelp(ctx, ms)
|
||||
} else {
|
||||
return pluginSubcommand(ctx, ms)
|
||||
|
|
@ -75,7 +75,7 @@ See more docs at https://oss.terrastruct.com/d2
|
|||
}
|
||||
|
||||
func longLayoutHelp(ctx context.Context, ms *xmain.State) error {
|
||||
layout := ms.Opts.Arg(1)
|
||||
layout := ms.Opts.Flags.Arg(1)
|
||||
plugin, path, err := d2plugin.FindPlugin(ctx, layout)
|
||||
if errors.Is(err, exec.ErrNotFound) {
|
||||
return layoutNotFound(ctx, layout)
|
||||
|
|
@ -119,13 +119,13 @@ For more information on setup, please visit https://github.com/terrastruct/d2.`,
|
|||
}
|
||||
|
||||
func pluginSubcommand(ctx context.Context, ms *xmain.State) error {
|
||||
layout := ms.Opts.Arg(1)
|
||||
layout := ms.Opts.Flags.Arg(1)
|
||||
plugin, _, err := d2plugin.FindPlugin(ctx, layout)
|
||||
if errors.Is(err, exec.ErrNotFound) {
|
||||
return layoutNotFound(ctx, layout)
|
||||
}
|
||||
|
||||
ms.Opts.SetArgs(ms.Opts.Args()[2:])
|
||||
ms.Opts.Args = ms.Opts.Flags.Args()[2:]
|
||||
return d2plugin.Serve(plugin)(ctx, ms)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,13 +53,13 @@ func run(ctx context.Context, ms *xmain.State) (err error) {
|
|||
return xmain.UsageErrorf(err.Error())
|
||||
}
|
||||
|
||||
err = ms.Opts.Parse()
|
||||
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)
|
||||
}
|
||||
|
||||
if len(ms.Opts.Args()) > 0 {
|
||||
switch ms.Opts.Arg(0) {
|
||||
if len(ms.Opts.Flags.Args()) > 0 {
|
||||
switch ms.Opts.Flags.Arg(0) {
|
||||
case "layout":
|
||||
return layoutHelp(ctx, ms)
|
||||
}
|
||||
|
|
@ -77,26 +77,26 @@ func run(ctx context.Context, ms *xmain.State) (err error) {
|
|||
var inputPath string
|
||||
var outputPath string
|
||||
|
||||
if len(ms.Opts.Args()) == 0 {
|
||||
if len(ms.Opts.Flags.Args()) == 0 {
|
||||
if versionFlag != nil && *versionFlag {
|
||||
fmt.Println(version.Version)
|
||||
return nil
|
||||
}
|
||||
help(ms)
|
||||
return nil
|
||||
} else if len(ms.Opts.Args()) >= 3 {
|
||||
} else if len(ms.Opts.Flags.Args()) >= 3 {
|
||||
return xmain.UsageErrorf("too many arguments passed")
|
||||
}
|
||||
|
||||
if len(ms.Opts.Args()) >= 1 {
|
||||
if ms.Opts.Arg(0) == "version" {
|
||||
if len(ms.Opts.Flags.Args()) >= 1 {
|
||||
if ms.Opts.Flags.Arg(0) == "version" {
|
||||
fmt.Println(version.Version)
|
||||
return nil
|
||||
}
|
||||
inputPath = ms.Opts.Arg(0)
|
||||
inputPath = ms.Opts.Flags.Arg(0)
|
||||
}
|
||||
if len(ms.Opts.Args()) >= 2 {
|
||||
outputPath = ms.Opts.Arg(1)
|
||||
if len(ms.Opts.Flags.Args()) >= 2 {
|
||||
outputPath = ms.Opts.Flags.Arg(1)
|
||||
} else {
|
||||
if inputPath == "-" {
|
||||
outputPath = "-"
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import (
|
|||
)
|
||||
|
||||
type Opts struct {
|
||||
args []string
|
||||
flags *pflag.FlagSet
|
||||
Args []string
|
||||
Flags *pflag.FlagSet
|
||||
env *xos.Env
|
||||
log *cmdlog.Logger
|
||||
|
||||
|
|
@ -26,8 +26,8 @@ func NewOpts(env *xos.Env, log *cmdlog.Logger, args []string) *Opts {
|
|||
flags.Usage = func() {}
|
||||
flags.SetOutput(io.Discard)
|
||||
return &Opts{
|
||||
args: args,
|
||||
flags: flags,
|
||||
Args: args,
|
||||
Flags: flags,
|
||||
env: env,
|
||||
log: log,
|
||||
}
|
||||
|
|
@ -35,8 +35,8 @@ func NewOpts(env *xos.Env, log *cmdlog.Logger, args []string) *Opts {
|
|||
|
||||
func (o *Opts) Help() string {
|
||||
b := &strings.Builder{}
|
||||
o.flags.SetOutput(b)
|
||||
o.flags.PrintDefaults()
|
||||
o.Flags.SetOutput(b)
|
||||
o.Flags.PrintDefaults()
|
||||
|
||||
if len(o.registeredEnvs) > 0 {
|
||||
b.WriteString("\nYou may persistently set the following as environment variables (flags take precedent):\n")
|
||||
|
|
@ -64,7 +64,7 @@ func (o *Opts) Int64(envKey, flag, shortFlag string, defaultVal int64, usage str
|
|||
o.registeredEnvs = append(o.registeredEnvs, envKey)
|
||||
}
|
||||
|
||||
return o.flags.Int64P(flag, shortFlag, defaultVal, usage), nil
|
||||
return o.Flags.Int64P(flag, shortFlag, defaultVal, usage), nil
|
||||
}
|
||||
|
||||
func (o *Opts) String(envKey, flag, shortFlag string, defaultVal, usage string) *string {
|
||||
|
|
@ -76,7 +76,7 @@ func (o *Opts) String(envKey, flag, shortFlag string, defaultVal, usage string)
|
|||
o.registeredEnvs = append(o.registeredEnvs, envKey)
|
||||
}
|
||||
|
||||
return o.flags.StringP(flag, shortFlag, defaultVal, usage)
|
||||
return o.Flags.StringP(flag, shortFlag, defaultVal, usage)
|
||||
}
|
||||
|
||||
func (o *Opts) Bool(envKey, flag, shortFlag string, defaultVal bool, usage string) (*bool, error) {
|
||||
|
|
@ -95,7 +95,7 @@ func (o *Opts) Bool(envKey, flag, shortFlag string, defaultVal bool, usage strin
|
|||
o.registeredEnvs = append(o.registeredEnvs, envKey)
|
||||
}
|
||||
|
||||
return o.flags.BoolP(flag, shortFlag, defaultVal, usage), nil
|
||||
return o.Flags.BoolP(flag, shortFlag, defaultVal, usage), nil
|
||||
}
|
||||
|
||||
func boolyEnv(s string) bool {
|
||||
|
|
@ -109,19 +109,3 @@ func falseyEnv(s string) bool {
|
|||
func truthyEnv(s string) bool {
|
||||
return s == "1" || s == "true"
|
||||
}
|
||||
|
||||
func (o *Opts) Parse() error {
|
||||
return o.flags.Parse(o.args)
|
||||
}
|
||||
|
||||
func (o *Opts) SetArgs(args []string) {
|
||||
o.args = args
|
||||
}
|
||||
|
||||
func (o *Opts) Args() []string {
|
||||
return o.flags.Args()
|
||||
}
|
||||
|
||||
func (o *Opts) Arg(i int) string {
|
||||
return o.flags.Arg(i)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue