https://github.com/edenreich/commandlineparser
An easy to interact with commandline interface written in javascript
https://github.com/edenreich/commandlineparser
Last synced: 1 day ago
JSON representation
An easy to interact with commandline interface written in javascript
- Host: GitHub
- URL: https://github.com/edenreich/commandlineparser
- Owner: edenreich
- Created: 2018-06-10T14:12:12.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-12T21:57:25.000Z (over 7 years ago)
- Last Synced: 2025-10-07T12:52:49.987Z (1 day ago)
- Language: JavaScript
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## CommandLineParser
An easy to use commandline interface written in javascript.## Installation
```javascript
npm install edenreich-commandline-parser
```## Usage
```javascript
const CommandlineParser = require('edenreich-commandline-parser').parser;
const args = process.argv;// Configure the Application.
const config = {
handler: 'path/to/my/awesome/handler',
labels: {
application_name: "My Awesome Application",
application_filename: "my-app",
application_version: "1.0.0"
},
commands: [{
name: "empty-trash",
description: "Empty the trash",
options: [{
name: "--my-option",
description: "with my first option"
},
{
name: "--my-option2",
description: "with my second option 2"
}]
}]
};let cliParser = new CommandlineParser(config);
// Parse the arguments.
let command = cliParser.parse(args);// Execute the command.
if (command.requestedForHelp()) {
cliParser.showHelp('index');
} else {
command.execute();
}
```## Handler
Create an handler and configure the path on the parser:
```javascript
class Commands
{
static emptyTrash(options)
{
options.forEach(function(option) {
switch(option.name)
{
case "--my-option":
// Handle option
break;
case "--my-option2":
// Handle option 2
break;
}
});
}
}module.exports = Commands;
```Now every command you declared above will correspond a camelcase static method on the above configured handler.
For instance command empty-trash is corresponding to static emptyTrash() method.## Application Help
You may create template files that matches the way your help look.
In the root directory create a folder called help:
```sh
mkdir help
```By default the parser will look for an ```index``` file, if you want to use different templates you may pass it as an argument:
```javascript
cliParser.showHelp('my-template');
```### Predefined Templates Placeholder
Template variables should be surrounded by *{%variable_name%}*, for example *{%hr%}*.
```
hr - line spacer
header - the application name
client_name - the client name
client_version - the version of the application
current_time - the current time
usage_title - the usage title
options_title - the options title
commands_title - the commands title
options_help - the help option
options - the list of options
commands - the list of commands
```You may also pass your own placeholders to the template:
```javascript
cliParser.showHelp('template', undefined, {"placeholder_name": "placeholder_value"});
```## Progressbar
You may also use the built in progressbar to give feedback to your users:
```javascript
const Progressbar = require('edenreich-commandline-parser').progressbar;class Commands
{
static emptyTrash(options)
{
Progressbar.start();// handle operation that takes 4 sec.
setTimeout(function() {
Progressbar.stop();
}, 4000);
}
}module.exports = Commands;
```