Migrate from urfave/cli to cobra (#1385)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/fission/fission/pkg/fission-cli/cliwrapper/cli"
|
||||
wrapper "github.com/fission/fission/pkg/fission-cli/cliwrapper/driver/cobra"
|
||||
"github.com/fission/fission/pkg/fission-cli/cliwrapper/driver/cobra/helptemplate"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/canaryconfig"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/environment"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/function"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/httptrigger"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/kubewatch"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/mqtrigger"
|
||||
_package "github.com/fission/fission/pkg/fission-cli/cmd/package"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/spec"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/support"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/timetrigger"
|
||||
"github.com/fission/fission/pkg/fission-cli/cmd/version"
|
||||
"github.com/fission/fission/pkg/fission-cli/console"
|
||||
"github.com/fission/fission/pkg/fission-cli/flag"
|
||||
flagkey "github.com/fission/fission/pkg/fission-cli/flag/key"
|
||||
)
|
||||
|
||||
const (
|
||||
usage = `Fission: Fast and Simple Serverless Functions for Kubernetes
|
||||
|
||||
* Github: https://github.com/fission/fission
|
||||
* Documentation: https://docs.fission.io/docs
|
||||
`
|
||||
)
|
||||
|
||||
func App() *cobra.Command {
|
||||
rootCmd := &cobra.Command{
|
||||
Use: "fission",
|
||||
Long: usage,
|
||||
//SilenceUsage: true,
|
||||
PreRunE: wrapper.Wrapper(
|
||||
func(flags cli.Input) error {
|
||||
console.Verbosity = flags.Int(flagkey.Verbosity)
|
||||
return nil
|
||||
},
|
||||
),
|
||||
}
|
||||
|
||||
// Workaround fix for not to show help command
|
||||
// https://github.com/spf13/cobra/issues/587
|
||||
rootCmd.SetHelpCommand(&cobra.Command{
|
||||
Use: "no-help",
|
||||
Hidden: true,
|
||||
})
|
||||
|
||||
wrapper.SetFlags(rootCmd, flag.FlagSet{
|
||||
Optional: []flag.Flag{flag.GlobalServerFlag, flag.GlobalVerbosityFlag},
|
||||
})
|
||||
|
||||
groups := helptemplate.CommandGroups{}
|
||||
groups = append(groups, helptemplate.CreateCmdGroup("Basic Commands", environment.Commands(), _package.Commands(), function.Commands()))
|
||||
groups = append(groups, helptemplate.CreateCmdGroup("Trigger Commands", httptrigger.Commands(), mqtrigger.Commands(), timetrigger.Commands(), kubewatch.Commands()))
|
||||
groups = append(groups, helptemplate.CreateCmdGroup("Deploy Strategies Commands", canaryconfig.Commands()))
|
||||
groups = append(groups, helptemplate.CreateCmdGroup("Declarative Application Commands", spec.Commands()))
|
||||
groups = append(groups, helptemplate.CreateCmdGroup("Other Commands", support.Commands(), version.Commands()))
|
||||
groups.Add(rootCmd)
|
||||
|
||||
helptemplate.ActsAsRootCommand(rootCmd, nil, groups...)
|
||||
|
||||
return rootCmd
|
||||
}
|
||||
@@ -17,16 +17,9 @@ limitations under the License.
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
fcli "github.com/fission/fission/pkg/fission-cli"
|
||||
"github.com/fission/fission/cmd/fission-cli/app"
|
||||
)
|
||||
|
||||
func main() {
|
||||
err := fcli.NewCliApp().Run(os.Args)
|
||||
if err != nil {
|
||||
fmt.Printf("Error: %v\n", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
app.App().Execute()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user