All Projects → rabbitmq → Rabbitmq Cli

rabbitmq / Rabbitmq Cli

Licence: other
Command line tools for RabbitMQ

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Rabbitmq Cli

Aura.cli
Command-Line Interface tools
Stars: ✭ 103 (-1.9%)
Mutual labels:  cli
Mal
MAL: A MyAnimeList Command Line Interface [BROKEN: BLAME MyAnimeList]
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Reg
Docker registry v2 command line client and repo listing generator with security checks.
Stars: ✭ 1,485 (+1314.29%)
Mutual labels:  cli
Void Space
Well-Typed Typing Tutor where you Type Types... in space... yup, you heard me
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Cli
Upload your templates to codesandbox with a single command 🏖️. This repo has been moved here: https://github.com/codesandbox-app/codesandbox-importers/tree/master/packages/cli
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Hcledit
A command line editor for HCL
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Brighter
Command Dispatcher, Processor, and Distributed Task Queue
Stars: ✭ 1,393 (+1226.67%)
Mutual labels:  rabbitmq
Schema Registry
A CLI and Go client for Kafka Schema Registry
Stars: ✭ 105 (+0%)
Mutual labels:  cli
Nord Termite
An arctic, north-bluish clean and elegant Termite color theme.
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Igniteui Cli
Ignite UI Command-Line Interface by Infragistics
Stars: ✭ 105 (+0%)
Mutual labels:  cli
Multivisor
Centralized supervisor WebUI and CLI
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Cli
Calibre's Node.js API and Command Line Client (CLI)
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Emplace
👩‍❤️‍💋‍👩 Synchronize installed packages on multiple machines
Stars: ✭ 105 (+0%)
Mutual labels:  cli
Zip It And Ship It
Intelligently prepare Node.js Lambda functions for deployment
Stars: ✭ 104 (-0.95%)
Mutual labels:  cli
Internals
High level architecture overview
Stars: ✭ 1,407 (+1240%)
Mutual labels:  rabbitmq
Rabbitmq Supervisor Bundle
Symfony bundle to automatically create and update supervisor configurations for RabbitMQ consumer daemons
Stars: ✭ 103 (-1.9%)
Mutual labels:  rabbitmq
Denox
Script runner and workspace configuration for Deno
Stars: ✭ 105 (+0%)
Mutual labels:  cli
Server
The backend server software layer which is the part of ONLYOFFICE Document Server and is the base for all other components
Stars: ✭ 104 (-0.95%)
Mutual labels:  rabbitmq
Think Builder
A command line toolit to build applications' CRUD/mvc scaffold for thinkphp v6. 用于生成 thinkphp v6 增查改删脚手架代码的命令行工具。
Stars: ✭ 105 (+0%)
Mutual labels:  cli
Devstats
📊 A CLI application that fetches stats from developer sites
Stars: ✭ 105 (+0%)
Mutual labels:  cli

RabbitMQ CLI Tools

This was migrated to https://github.com/rabbitmq/rabbitmq-server

This repository has been moved to the main unified RabbitMQ "monorepo", including all open issues. You can find the source under /deps/rabbitmq_cli. All issues have been transferred.

Overview

Build Status

This repository contains RabbitMQ CLI tools (rabbitmqctl and others).

This generation of CLI tools first shipped with RabbitMQ 3.7.0.

Goals

Team RabbitMQ wanted a set of tools that

  • Was extensible from/with plugins
  • Supported pluggable output formats (in particular machine-friendly ones)
  • Had good test coverage
  • Wasn't as coupled to the server repository
  • Could be used as a low risk vehicle for Elixir evaluation

Supported RabbitMQ Versions

Long lived branches in this repository track the same branch in RabbitMQ core and related repositories. So master tracks master in rabbitmq-server, v3.7.x tracks branch v3.7.x in rabbitmq-server and so on.

Please use the version of CLI tools that come with the RabbitMQ distribution version installed.

Building

Requirements

Building this project requires

  • Erlang/OTP 21.3 (or later)
  • Elixir 1.10.0 (or later).

Command line tools depend on rabbitmq-common. Dependencies are being resolved by erlang.mk

Building Standalone Executables

This repo produces a rabbitmqctl executable which can be used as different tools (rabbitmq-plugins, rabbitmq-diagnostics, rabbitmq-queues, rabbitmq-streams, rabbitmq-upgrade) by copying or symlinking it with different names. Depending on the name, a different set of commands will be loaded and available, including for --help.

To generate the executable, run

make

Usage

rabbitmqctl

See rabbitmqctl help and rabbitmqctl man page for details.

rabbitmq-plugins

See rabbitmq-plugins help and rabbitmq-plugins man page for details.

rabbitmq-diagnostics

See rabbitmq-diagnostics help and rabbitmq-diagnostics man page.

Testing

See CONTRIBUTING.md.

Developing

Adding a New Command

Conventions

RabbitMQ CLI tools use module name conventions to match the command-line actions (commands) to modules. The convention is outlined in the CommandBehaviour module.

Command Module Interface

Each command module must implement the RabbitMQ.CLI.CommandBehaviour behaviour, which includes the following functions:

  • validate(args, opts), which returns either :ok or a tuple of {:validation_failure, failure_detail} where failure detail is typically one of: :too_many_args, :not_enough_args or {:bad_argument, String.t}.

  • merge_defaults(args, opts), which is used to return updated arguments and/or options.

  • run(args, opts), where the actual command is implemented. Here, args is a list of command-specific parameters and opts is a Map containing option flags.

  • usage, which returns a string describing the command, its arguments and its optional flags.

  • banner(args, opts), which returns a string to be printed before the command output.

There are also a number of optional callbacks:

  • switches, which returns command specific switches.
  • aliases, which returns a list of command aliases (if any).
  • formatter: what output formatter should be used by default.
  • usage_additional: extra values appended to the usage output to provide additional command-specific documentation.
  • scopes: what scopes this command appears in. Scopes associate tools (e.g. rabbitmqctl, rabbitmq-diagnostics, rabbitmq-queues, rabbitmq-streams) with commands.
  • distribution: control erlang distribution. Can be :cli (default), :none or {:fun, fun}

Tutorial

We have a tutorial that demonstrates how to add a CLI command that deletes a queue.

Examples

See lib/rabbitmq/cli/ctl/commands/status_command.ex and test/status_command_test.exs for minimalistic but not entirely trivial examples.

Copyright and License

The project is licensed under the MPL, the same license as RabbitMQ.

(c) 2007-2020 VMware, Inc. or its affiliates.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].