blob: dc47bb8c3f648fc89dd6d230f05cc424f4feb467 [file]
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")
}