func commonDashboardCmd()

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)
}