Home

Awesome

Toolkit

Modular command line interface toolkit.

Design

Modules

The toolkit is designed so you can use one or two modules or all of them depending upon your program complexity, pick and choose what you need, you can always include more as your requirements change.

Arguments

Lightweight yet feature rich argument parser

The argparse module is a lightweight yet extremely capable argument parser consisting of ~100 lines of code.

Command

Command execution

The command module glues define and argparse adding support for more complex command parsing and execution.

Define

Chainable argument builder

The define module allows you to define your program's commands, options and flags in an intuitive and flexible manner using chained method calls and a self-documenting convention.

Environment

Environment variable management

The env module provides convenient access to environment variables, supports native type coercion and is designed specifically to allow programs to store user preferences or common command line arguments as prefixed environment variables.

Error

Unified error handling

The error module is designed around errors with associated exit status codes, it supports i18n should you need it and integrates seamlessly with ttycolor.

Locale

Utilities for working with LC environment variables

The locale module provides some utility functions for inspecting the terminal environment and extracting a locale identifer.

Color

Colors that respect the tty

The ttycolor module provides support for ANSI escape sequences whilst ensuring your log files are never cluttered with escape sequences.

Util

Utility functions for the toolkit

The util module provides some common functions shared across modules, typically for manipulating strings.

Install

npm install cli-toolkit

Test

npm test

To fetch all the modules and then run the tests:

npm run refresh

Notes

This package does not include any code, it serves as a location to document the modules and as a mechanism for running tests across all the modules.

It is also a convenient way to fetch all the modules if you wish to use them all.

License

Everything is MIT. Read the license if you feel inclined.