| package cmd |
| |
| import ( |
| "os" |
| |
| "github.com/apache/cloudberry-go-libs/gplog" |
| |
| "github.com/spf13/cobra" |
| ) |
| |
| var version string |
| |
| // rootCmd represents the base command when called without any subcommands |
| var rootCmd = &cobra.Command{ |
| Use: "pxf", |
| Version: version, |
| } |
| |
| // Execute adds all child commands to the root command and sets flags appropriately. |
| // This is called by main.main(). It only needs to happen once to the rootCmd. |
| func Execute() { |
| if err := rootCmd.Execute(); err != nil { |
| os.Exit(1) |
| } |
| } |
| |
| func init() { |
| // InitializeLogging must be called before we attempt to log with gplog. |
| gplog.InitializeLogging("pxf_cli", "") |
| gplog.SetLogPrefixFunc(func(s string) string { |
| return "" |
| }) |
| |
| rootCmd.SetHelpCommand(&cobra.Command{ |
| Use: "no-help", |
| Hidden: true, |
| }) |
| rootCmd.SetVersionTemplate(`{{printf "PXF version %s" .Version}} |
| `) |
| rootCmd.SetUsageTemplate(`Usage: pxf cluster <command> |
| pxf cluster {-h | --help}{{if .HasAvailableSubCommands}} |
| |
| List of Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}} |
| {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}} |
| |
| Flags: |
| {{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}} |
| |
| Global Flags: |
| {{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}} |
| |
| Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}} |
| {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}} |
| |
| Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}} |
| |
| `) |
| // Cobra also supports local flags, which will only run |
| // when this action is called directly. |
| rootCmd.Flags().BoolP("version", "v", false, "show the version of PXF server") |
| } |