diff options
author | Francis Lavoie <lavofr@gmail.com> | 2023-02-24 18:09:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-24 16:09:12 -0700 |
commit | 9e6919550be5689628d0020ec14e90ea6f527716 (patch) | |
tree | 81865f63e5ef549f8548cd6e22e9aa89d4eaf207 /cmd/cobra.go | |
parent | 167981d258f41b7ef931d510056a5a5fdc9cbd0d (diff) |
cmd: Expand cobra support, add short flags (#5379)
* cmd: Expand cobra support
* Convert commands to cobra, add short flags
* Fix version command typo
Co-authored-by: Emily Lange <git@indeednotjames.com>
* Apply suggestions from code review
Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
---------
Co-authored-by: Emily Lange <git@indeednotjames.com>
Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
Diffstat (limited to 'cmd/cobra.go')
-rw-r--r-- | cmd/cobra.go | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/cmd/cobra.go b/cmd/cobra.go index 203b7bd..4339cdb 100644 --- a/cmd/cobra.go +++ b/cmd/cobra.go @@ -109,12 +109,21 @@ func caddyCmdToCobra(caddyCmd Command) *cobra.Command { Use: caddyCmd.Name, Short: caddyCmd.Short, Long: caddyCmd.Long, - RunE: func(cmd *cobra.Command, _ []string) error { - fls := cmd.Flags() - _, err := caddyCmd.Func(Flags{fls}) - return err - }, } - cmd.Flags().AddGoFlagSet(caddyCmd.Flags) + if caddyCmd.CobraFunc != nil { + caddyCmd.CobraFunc(cmd) + } else { + cmd.RunE = WrapCommandFuncForCobra(caddyCmd.Func) + cmd.Flags().AddGoFlagSet(caddyCmd.Flags) + } return cmd } + +// WrapCommandFuncForCobra wraps a Caddy CommandFunc for use +// in a cobra command's RunE field. +func WrapCommandFuncForCobra(f CommandFunc) func(cmd *cobra.Command, _ []string) error { + return func(cmd *cobra.Command, _ []string) error { + _, err := f(Flags{cmd.Flags()}) + return err + } +} |