diff --git a/cmd/root.go b/cmd/root.go index 4c63923..5000543 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -69,7 +69,8 @@ func RootCmd() *cobra.Command { }, } amqp_mqtt.Flags().IntVar(&cfg.MqttConsumer.QoS, "mqtt-consumer-qos", 0, "MQTT consumer QoS level (0, 1 or 2; default=0)") - amqp_mqtt.Flags().BoolVar(&cfg.MqttConsumer.CleanSession, "mqtt-consumer-clean-session", true, "MQTT consumer clean session (default = true)") + amqp_mqtt.Flags(). + BoolVar(&cfg.MqttConsumer.CleanSession, "mqtt-consumer-clean-session", true, "MQTT consumer clean session (default = true)") stomp_stomp = &cobra.Command{ Use: "stomp-stomp", @@ -94,7 +95,8 @@ func RootCmd() *cobra.Command { }, } stomp_mqtt.Flags().IntVar(&cfg.MqttConsumer.QoS, "mqtt-consumer-qos", 0, "MQTT consumer QoS level (0, 1 or 2; default=0)") - stomp_mqtt.Flags().BoolVar(&cfg.MqttConsumer.CleanSession, "mqtt-consumer-clean-session", true, "MQTT consumer clean session (default = true)") + stomp_mqtt.Flags(). + BoolVar(&cfg.MqttConsumer.CleanSession, "mqtt-consumer-clean-session", true, "MQTT consumer clean session (default = true)") mqtt_mqtt = &cobra.Command{ Use: "mqtt-mqtt", @@ -105,8 +107,10 @@ func RootCmd() *cobra.Command { } mqtt_mqtt.Flags().IntVar(&cfg.MqttPublisher.QoS, "mqtt-publisher-qos", 0, "MQTT publisher QoS level (0, 1 or 2; default=0)") mqtt_mqtt.Flags().IntVar(&cfg.MqttConsumer.QoS, "mqtt-consumer-qos", 0, "MQTT consumer QoS level (0, 1 or 2; default=0)") - mqtt_mqtt.Flags().BoolVar(&cfg.MqttPublisher.CleanSession, "mqtt-publisher-clean-session", true, "MQTT publisher clean session (default = true)") - mqtt_mqtt.Flags().BoolVar(&cfg.MqttConsumer.CleanSession, "mqtt-consumer-clean-session", true, "MQTT consumer clean session (default = true)") + mqtt_mqtt.Flags(). + BoolVar(&cfg.MqttPublisher.CleanSession, "mqtt-publisher-clean-session", true, "MQTT publisher clean session (default = true)") + mqtt_mqtt.Flags(). + BoolVar(&cfg.MqttConsumer.CleanSession, "mqtt-consumer-clean-session", true, "MQTT consumer clean session (default = true)") mqtt_amqp = &cobra.Command{ Use: "mqtt-amqp", @@ -116,7 +120,8 @@ func RootCmd() *cobra.Command { } mqtt_amqp.Flags().IntVar(&cfg.Amqp.ConsumerCredits, "amqp-consumer-credits", 1, "AMQP 1.0 consumer credits") mqtt_amqp.Flags().IntVar(&cfg.MqttPublisher.QoS, "mqtt-qos", 0, "MQTT publisher QoS level (0, 1 or 2; default=0)") - mqtt_amqp.Flags().BoolVar(&cfg.MqttPublisher.CleanSession, "mqtt-publisher-clean-session", true, "MQTT publisher clean session (default = true)") + mqtt_amqp.Flags(). + BoolVar(&cfg.MqttPublisher.CleanSession, "mqtt-publisher-clean-session", true, "MQTT publisher clean session (default = true)") mqtt_stomp = &cobra.Command{ Use: "mqtt-stomp", @@ -125,7 +130,8 @@ func RootCmd() *cobra.Command { }, } mqtt_stomp.Flags().IntVar(&cfg.MqttPublisher.QoS, "mqtt-qos", 0, "MQTT publisher QoS level (0, 1 or 2; default=0)") - mqtt_stomp.Flags().BoolVar(&cfg.MqttPublisher.CleanSession, "mqtt-publisher-clean-session", true, "MQTT publisher clean session (default = true)") + mqtt_stomp.Flags(). + BoolVar(&cfg.MqttPublisher.CleanSession, "mqtt-publisher-clean-session", true, "MQTT publisher clean session (default = true)") versionCmd = &cobra.Command{ Use: "version", @@ -134,7 +140,8 @@ func RootCmd() *cobra.Command { }, } - var rootCmd = &cobra.Command{Use: "omq", + rootCmd := &cobra.Command{ + Use: "omq", PersistentPreRun: func(cmd *cobra.Command, args []string) { if cfg.Size < 12 { _, _ = fmt.Fprintf(os.Stderr, "ERROR: size can't be less than 12 bytes\n") @@ -152,17 +159,24 @@ func RootCmd() *cobra.Command { rootCmd.PersistentFlags().StringVarP(&cfg.ConsumerUri, "consumer-uri", "", "", "URI for consuming") rootCmd.PersistentFlags().IntVarP(&cfg.Publishers, "publishers", "x", 1, "The number of publishers to start") rootCmd.PersistentFlags().IntVarP(&cfg.Consumers, "consumers", "y", 1, "The number of consumers to start") - rootCmd.PersistentFlags().IntVarP(&cfg.PublishCount, "pmessages", "C", math.MaxInt, "The number of messages to send per publisher (default=MaxInt)") - rootCmd.PersistentFlags().IntVarP(&cfg.ConsumeCount, "cmessages", "D", math.MaxInt, "The number of messages to consume per consumer (default=MaxInt)") - rootCmd.PersistentFlags().StringVarP(&cfg.PublishTo, "publish-to", "t", "/topic/omq", "The topic/terminus to publish to (%d will be replaced with the publisher's id)") - rootCmd.PersistentFlags().StringVarP(&cfg.ConsumeFrom, "consume-from", "T", "/topic/omq", "The queue/topic/terminus to consume from (%d will be replaced with the consumer's id)") + rootCmd.PersistentFlags(). + IntVarP(&cfg.PublishCount, "pmessages", "C", math.MaxInt, "The number of messages to send per publisher (default=MaxInt)") + rootCmd.PersistentFlags(). + IntVarP(&cfg.ConsumeCount, "cmessages", "D", math.MaxInt, "The number of messages to consume per consumer (default=MaxInt)") + rootCmd.PersistentFlags(). + StringVarP(&cfg.PublishTo, "publish-to", "t", "/topic/omq", "The topic/terminus to publish to (%d will be replaced with the publisher's id)") + rootCmd.PersistentFlags(). + StringVarP(&cfg.ConsumeFrom, "consume-from", "T", "/topic/omq", "The queue/topic/terminus to consume from (%d will be replaced with the consumer's id)") rootCmd.PersistentFlags().IntVarP(&cfg.Size, "size", "s", 12, "Message payload size in bytes") rootCmd.PersistentFlags().IntVarP(&cfg.Rate, "rate", "r", -1, "Messages per second (-1 = unlimited; default=-1)") rootCmd.PersistentFlags().DurationVarP(&cfg.Duration, "time", "z", 0, "Run duration (eg. 10s, 5m, 2h)") - rootCmd.PersistentFlags().BoolVarP(&cfg.UseMillis, "use-millis", "m", false, "Use milliseconds for timestamps (automatically enabled when no publishers or no consumers)") - rootCmd.PersistentFlags().VarP(enumflag.New(&cfg.QueueDurability, "queue-durability", config.AmqpDurabilityModes, enumflag.EnumCaseInsensitive), "queue-durability", "", "Queue durability (default: configuration - the queue definition is durable)") + rootCmd.PersistentFlags(). + BoolVarP(&cfg.UseMillis, "use-millis", "m", false, "Use milliseconds for timestamps (automatically enabled when no publishers or no consumers)") + rootCmd.PersistentFlags(). + VarP(enumflag.New(&cfg.QueueDurability, "queue-durability", config.AmqpDurabilityModes, enumflag.EnumCaseInsensitive), "queue-durability", "", "Queue durability (default: configuration - the queue definition is durable)") rootCmd.PersistentFlags().StringVar(&cfg.Amqp.Subject, "amqp-subject", "", "AMQP 1.0 message subject") - rootCmd.PersistentFlags().BoolVarP(&cfg.MessageDurability, "message-durability", "d", true, "Mark messages as durable (default=true)") + rootCmd.PersistentFlags(). + BoolVarP(&cfg.MessageDurability, "message-durability", "d", true, "Mark messages as durable (default=true)") rootCmd.AddCommand(amqp_amqp) rootCmd.AddCommand(amqp_stomp) @@ -258,7 +272,7 @@ func setUris(cfg *config.Config, command string) { } func defaultUri(proto string) string { - var uri = "localhost" + uri := "localhost" switch proto { case "amqp": uri = "amqp://localhost"