Fix bug where help command doesn't show flags/subcommands

This commit is contained in:
Elara 2022-07-31 02:15:42 -07:00
parent 1f5a6365bc
commit 71e9caf0bc
2 changed files with 32 additions and 5 deletions

View File

@ -26,6 +26,7 @@ func main() {
app := cli.App{
Name: "itctl",
HideHelpCommand: true,
Flags: []cli.Flag{
&cli.StringFlag{
Name: "socket-path",
@ -35,6 +36,12 @@ func main() {
},
},
Commands: []*cli.Command{
{
Name: "help",
ArgsUsage: "<command>",
Usage: "Display help screen for a command",
Action: helpCmd,
},
{
Name: "filesystem",
Aliases: []string{"fs"},
@ -229,11 +236,13 @@ func main() {
},
},
Before: func(c *cli.Context) error {
newClient, err := api.New(c.String("socket-path"))
if err != nil {
return err
if !isHelpCmd() {
newClient, err := api.New(c.String("socket-path"))
if err != nil {
return err
}
client = newClient
}
client = newClient
return nil
},
After: func(*cli.Context) error {
@ -249,3 +258,21 @@ func main() {
log.Fatal().Err(err).Msg("Error while running app")
}
}
func helpCmd(c *cli.Context) error {
cmdArgs := append([]string{os.Args[0]}, c.Args().Slice()...)
cmdArgs = append(cmdArgs, "-h")
return c.App.RunContext(c.Context, cmdArgs)
}
func isHelpCmd() bool {
if len(os.Args) == 1 {
return true
}
for _, arg := range os.Args {
if arg == "-h" || arg == "help" {
return true
}
}
return false
}

View File

@ -29,7 +29,7 @@ func newProgress(w fyne.Window) progress {
// Create new rectangle to set the size of the popup
sizeRect := canvas.NewRectangle(color.Transparent)
sizeRect.SetMinSize(fyne.NewSize(300, 50))
// Create vbox for label and progress bar
l := container.NewVBox(out.lbl, out.pb)
// Create popup