in pkg/dubboctl/cmd/subcmd/dashboard_all_cmds.go [83:123]
func commonDashboardCmd(baseCmd *cobra.Command, compName operator.ComponentName) {
nameStr := string(compName)
lowerNameStr := strings.ToLower(nameStr)
dcArgs := &DashboardCommonArgs{}
cmd := &cobra.Command{
Use: lowerNameStr,
Short: fmt.Sprintf("create PortForward between local address and target component %s pod. open browser by default", nameStr),
Example: fmt.Sprintf(` # create PortForward in 127.0.0.1:%d and open browser directly
dubboctl dashboard %s
# specify port
dubboctl dashboard %s --port %d
# do not open browser
dubboctl dashboard %s --openBrowser false
# specify namespace of Admin
dubboctl dashboard %s --namespace ns_user_specified
`, ComponentPortMap[compName], lowerNameStr, lowerNameStr, ComponentPortMap[compName], lowerNameStr, lowerNameStr),
RunE: func(cmd *cobra.Command, args []string) error {
logger.InitCmdSugar(zapcore.AddSync(cmd.OutOrStdout()))
dcArgs.setDefault()
if err := portForward(dcArgs, compName, cmd.OutOrStdout()); err != nil {
return err
}
return nil
},
}
cmd.PersistentFlags().IntVarP(&dcArgs.port, "port", "p", 0,
fmt.Sprintf("local port to listen on. If not set, it would be same as the default port of component %s", nameStr))
cmd.PersistentFlags().StringVarP(&dcArgs.host, "host", "h", "",
"local host to bind. If not set, it would be 127.0.0.1")
// openBrowser is default behaviour
cmd.PersistentFlags().BoolVarP(&dcArgs.openBrowser, "openBrowser", "", true,
"whether to open browser automatically")
cmd.PersistentFlags().StringVarP(&dcArgs.namespace, "namespace", "n", "",
fmt.Sprintf("namespace in which component %s is located", nameStr))
cmd.PersistentFlags().StringVarP(&dcArgs.KubeConfigPath, "kubeConfig", "", "",
"Path to kubeconfig")
cmd.PersistentFlags().StringVarP(&dcArgs.Context, "context", "", "",
"Context in kubeconfig to use")
baseCmd.AddCommand(cmd)
}