imq-cli

Command Line Interface for IMQ

Usage no npm install needed!

<script type="module">
  import imqCli from 'https://cdn.skypack.dev/imq-cli';
</script>

README

I Message Queue CLI (imq-cli)

Build Status codebeat badge Coverage Status David David Known Vulnerabilities License

ATTENTION: This package is unstable and still in development. Some of the features may not work or may work with problems.

Why?

IMQ-CLI makes work with imq-rpc simpler. Frees you from writing boilerplate.

Install

As simple as:

npm i -g imq-cli

Usage

IMQ-CLI first of all provides a way to manage your IMQ-RPC based services and clients based on desired configuration.

IMQ Command Line Interface
Version: 1.0.0-dev2

Usage: imq <command>

Commands:
  imq client       Manage IMQ client
  imq completions  Generates completions script for your shell
  imq config       Manage IMQ CLI settings
  imq service      Manage IMQ service

Options:
  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]

Service Management

The main essence of this command-line tool is to provide simple way of creating services based on boilerplate templates.

Currently it supports a single template default, which provides a way to create a service, targeted to be developed under GitHub version control system, integrated with TravisCI and docker builds. By simply running a single command it will create a ready-to-run service and all you will need is to write it's implementation.

It is recommended to run imq config init right after installation of this command-line tool and before running imq service create commands.

imq service create [name] [path]

Creates new service package with the given service name under given path.

Options:
  --version               Show version number                          [boolean]
  --help                  Show help                                    [boolean]
  -a, --author            Service author full name (person or organization)
  -e, --email             Service author's contact email
  -g, --use-git           Turns on automatic git repo creation         [boolean]
  -u, --github-namespace  GitHub namespace (usually user name or organization
                          name)
  --no-install            Do not install npm packages automatically on service
                          creation                                     [boolean]
  -V, --service-version   Initial service version             [default: "1.0.0"]
  -H, --homepage          Homepage URL for service, if required
  -B, --bugs-url          Bugs url for service, if required
  -l, --license           License for created service, should be either license
                          name in SPDX format or path to a custom license file
  -t, --template          Template used to create service (should be either
                          template name, git url or file system directory)
  -d, --description       Service description
  -n, --node-versions     Node version tags to use for builds, separated by
                          comma if multiple. First one will be used for docker
                          build, if dockerize option enabled.
  -D, --dockerize         Enable service dockerization with CI builds  [boolean]
  -L, --node-docker-tag   Node docker tag to use as base docker image for docker
                          builds
  -N, --docker-namespace  Docker hub namespace
  -T, --github-token      GitHub auth token
  -p, --private           Service repository will be private at GitHub [boolean]
  --name                  Service name to create with
  --path                  Path to directory where service will be generated to

Client Management

Generating Clients:

To generate a client related service should be started, otherwise generation will fail.

This command will expect service name as mandatory option.

Usage:

imq client generate <name> [path]

Generates IMQ-RPC client for a specified service

Options:
  --version        Show version number                                 [boolean]
  --help           Show help                                           [boolean]
  -o, --overwrite  Overwrite existing client without prompt            [boolean]
  --path           Directory where client file should be placed   [default: "."]

Managing IMQ-CLI Configuration

IMQ-CLI can be used with a pre-configured options to shorten commands usage. Global base configurations options usually stored in ~/.imq/config.json file. This file can be managed manually, but it is recommended to use special command:

imq config init

which will guide you through configuration process.

There are also useful commands to retrieve and set specific configuration values, stored in a configuration file:

imq config get

will print all upset configuration options in option = value format.

imq config get [option_name]

will print a single requested option value.

imq config set [option_name] [new_value]

will set requested option to a given new value.

IMQ-CLI Completions For Your Shell

IMQ-CLI supports completions for your shell. It provide a way to generate completions script and add it to your shell configuration, as far as allows to remove previously added completion script just running the corresponding commands:

imq completions on
imq completions off

Currently it supports both zsh and bash shells.

License

ISC