Inspired by the Spring Roo project, this library provides a simple way to write custom application specific shells with the following features:

Auto-complete commands

Command options

Sub commands

Extends from inquirer module - thus making all the features of inquirer available to the shell instance for taking user input.

module - thus making all the features of available to the shell instance for taking user input. Default help command which automatically prints help for all commands. Any command suffixed with help will display the help for that command.

Install

$ npm install --save simple-shell

Usage

var shell = require ( ' simple-shell ' ) ; shell . initialize ( shellOptions ) ; shell . registerCommand ( cmdOptions ) ; shell . startConsole ( ) ; # >

shellOptions

{ name: <String>, authorName: <String>, version: <String>, exitMessage: <String>, prompt: <String> }

name : Name of the console application. default: package.json:name .

: Name of the console application. default: . authorName : Name of the author/Owner of the application. default: package.json:author.name .

: Name of the author/Owner of the application. default: . version : Versionof the application. default: package.json:version .

: Versionof the application. default: . exitMessage : Message to be displayed when user quits the console app. default: Good Bye! .

: Message to be displayed when user quits the console app. default: . prompt : Prompt to be displayed. Ex: #> . default: package.json:name .

All the options are optional and will be fetched from package.json if not provided.

cmdOptions

{ name: <String>, help: <String>, context: <String>, isAvailable: <Function>, options: { optionName: { help: <String>, required: <Boolean>, defaultValue: <String|Number|Boolean>, allowedValues: <Array> } }, handler: <Function to be called when the command is run> }

name : Name of the command.

: Name of the command. help : Help string for the command that will be displayed when the user runs help .

: Help string for the command that will be displayed when the user runs . context : A string representing a context under which the command is running. If set, the application's context will be set to this string on successful execution of the command.

: A string representing a context under which the command is running. If set, the application's context will be set to this string on successful execution of the command. isAvailable(context) : The function that will be called to determine if a command is available for execution. default: always returns true .

: The function that will be called to determine if a command is available for execution. default: always returns . handler(cmd, options, context) : The handler function that will be called to execute a command. If the command is not successful, it is expected to throw an Error . On successful execution of the command, the context will be set to command.context .

: The handler function that will be called to execute a command. If the command is not successful, it is expected to throw an . On successful execution of the command, the context will be set to . optionName : Name of the option. This will be presented as --optionName to the user.

: Name of the option. This will be presented as to the user. optionName.help : Help string for the option.

: Help string for the option. optionName.required : Indicates if the option is a mandatory option or not. default: false .

: Indicates if the option is a mandatory option or not. default: . optionName.defaultValue : The default value for an option if user doesn't provide one.

: The default value for an option if user doesn't provide one. optionName.allowedValues : A list of valid values for the option.

Pending documentation..