start interaction module

This commit is contained in:
2016-08-26 11:52:09 +02:00
parent 9e5fb7a13a
commit c7a647d4ef
14 changed files with 219 additions and 188 deletions

View File

@@ -17,38 +17,22 @@ this plugin tries to establish some logic in which CLI tools work.
take the following commandline input:
```
mytool function argument1 argument2 --option1 option1Value --option2 option2Value
mytool function argument1 argument2 --option1 -o2 option2Value
```
* 'mytool' obviously is the tool (like git)
* function is the main thing the tool shall do (like commit)
* option is an option you can add (like -m for message)
* argument1 and argument2 are arguments
* option1 is a longform option you can add (like --message for message)
* optionValue is the referenced option value (like a commit message)
### The inner organization of smartcli
**smartcli** exposes three major groups of functions:
* check functions
* are grouped in **smartcli.checks** object
* get functions
* are grouped in **smartcli.get** object
* async interaction functions
* are grouped in **smartcli.interaction** object
### Methods
The examples are written in TypeScript
```typescript
import * as smartcli from "smartcli"
/* -------------- Check Functions -------------------*/
smartcli.check.command("jazz"); // check for a special command.
smartcli.check.commandPresence() // check if any command is specified
smartcli.check.commandArguemnt("myargument",1) // checks if a special argument is given, second argument is level
smartcli.check.commandArguemntPresence // checks of any Argument is present
smartcli.check.option("someoption") // checks for a specific option
smartcli.check.optionPresence() // checks if any option is specified
smartcli.get.option('myoption'); //
```
import {Smartcli} from "smartcli"
mySmartcli = new Smartcli();
mySmartcli.standardTask()
.then(argvArg => {
// do something if program is called without an command
});
mySmartcli.question
```