Use raw args in -help flag handling

pull/37645/head
Mark DeCrane 7 months ago
parent e241e1ace1
commit 10f00d437f

@ -82,7 +82,6 @@ func (c *StacksCommand) realRun(args []string, stdout, stderr io.Writer) int {
args = c.Meta.process(args)
cmdFlags := c.Meta.defaultFlagSet("stacks")
cmdFlags.StringVar(&pluginCacheDirOverride, "plugin-cache-dir", "", "plugin cache directory")
cmdFlags.Usage = func() { c.Ui.Error(c.Help()) }
cmdFlags.Parse(args)
if pluginCacheDirOverride != "" {
@ -379,8 +378,17 @@ func (c *StacksCommand) Run(args []string) int {
// Help returns help text for the stacks command.
func (c *StacksCommand) Help() string {
helpText := new(bytes.Buffer)
if exitCode := c.realRun([]string{}, helpText, io.Discard); exitCode != 0 {
return ""
errorText := new(bytes.Buffer)
parsedArgs := []string{}
for _, arg := range os.Args[1:] {
if arg == "stacks" {
continue // skip stacks command name
}
parsedArgs = append(parsedArgs, arg)
}
if exitCode := c.realRun(parsedArgs, helpText, errorText); exitCode != 0 {
return errorText.String()
}
return helpText.String()

Loading…
Cancel
Save