RabbitMQ version 3.7 comes with brave new CLI tool to replace rabbitmqctl
.
Some of the issues in the older tool suite we wanted to address:
- Built-in into RabbitMQ server code
- Home-grown argument parser
module Jack where | |
data Tell = Lie | CanLie | Truth | |
data State = Insane | Sane | |
data Card = Ace | Two | Three | Four | Five | Six | Seven | Jack | |
data About = About | |
data As = As | |
data Not = Not | |
data Both = Both |
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: skeleton | |
# Required-Start: $remote_fs $syslog | |
# Required-Stop: $remote_fs $syslog | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Example initscript | |
# Description: This file should be used to construct scripts to be | |
# placed in /etc/init.d. |
make tests | |
GEN virgin-test-tmpdir | |
ant -Dmake.bin=/Library/Developer/CommandLineTools/usr/bin/make -DUMBRELLA_AVAILABLE=true -Drabbitmqctl.bin=/Users/daniilfedotov/dev/rabbitmq-public-umbrella/deps/rabbit/scripts/rabbitmqctl -Dsibling.codegen.dir=/Users/daniilfedotov/dev/rabbitmq-public-umbrella/deps/rabbitmq_codegen -Dsibling.rabbitmq_test.dir=/Users/daniilfedotov/dev/rabbitmq-public-umbrella/deps/rabbitmq_test -Dmake.bin=/Library/Developer/CommandLineTools/usr/bin/make -DUMBRELLA_AVAILABLE=true -Drabbitmqctl.bin=/Users/daniilfedotov/dev/rabbitmq-public-umbrella/deps/rabbit/scripts/rabbitmqctl -Dsibling.codegen.dir=/Users/daniilfedotov/dev/rabbitmq-public-umbrella/deps/rabbitmq_codegen -Dsibling.rabbitmq_test.dir=/Users/daniilfedotov/dev/rabbitmq-public-umbrella/deps/rabbitmq_test build | |
make[2]: ant: No such file or directory | |
make[2]: *** [all] Error 1 | |
make[1]: *** [deps] Error 2 | |
DEPEND rabbitmq_stomp.d | |
ERLC rabbit_stomp_client_sup.erl | |
APP rabbitmq_stomp.app.src | |
GEN test-dir |
-module(json). | |
-export([decode/1, encode/1]). | |
% JSON_CODEC can be defined during compilation | |
-ifndef(JSON_CODEC). | |
% Default to jsx | |
-define(JSON_CODEC, jsx). | |
-endif | |
decode(Json) -> |
# [ | |
# {rabbit, | |
# [## | |
## Network Connectivity | |
## ==================== | |
## | |
## By default, RabbitMQ will listen on all interfaces, using | |
## the standard (reserved) AMQP port. | |
## | |
## {tcp_listeners, [5672]}, |
[ | |
{ | |
"acks_uncommitted": 654846, | |
"confirm": false, | |
"connection_details": { | |
"name": "127.0.0.1:56575 -> 127.0.0.1:5672", | |
"peer_host": "127.0.0.1", | |
"peer_port": 56575 | |
}, | |
"consumer_count": 667236, |
$ make foo | |
echo var /etc/init.d | |
var /etc/init.d | |
echo other /etc/init.d | |
other /etc/init.d | |
$ make bar | |
echo var /etc/init.d | |
var /etc/init.d | |
echo other /etc/init.d | |
other /etc/init.d |
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.DummyCommand'). | |
-behaviour('Elixir.RabbitMQ.CLI.CommandBehaviour'). | |
-export([ | |
usage/0 | |
,flags/0 | |
,validate/2 | |
,merge_defaults/2 | |
,banner/2 |
RabbitMQ team is proud to announce that starting from the version 3.7.0
RabbitMQ will come with the new command line tools, known as rabbitmqctl
.
The reasoning behind this change is that in previous versions rabbitmqctl
was
deeply integrated into server code, which made it hard to implement new commands,
extend and modify existing commands.
The tools is written on [Elixir][elixir] programming language.
This will make it easier for people new to erlang to start extending the tools.
Although after built, the tools don't require Elixir
to be installed.