Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
a6e0fa65e0 | |||
c7e940f597 | |||
45d3ce8ffc | |||
ce121b8b7f | |||
ce65b8d7c9 | |||
9acdfca460 | |||
59bcd8dadf | |||
b6375fd8fa | |||
8183417c90 | |||
5e66d35125 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
coverage/
|
coverage/
|
||||||
public/
|
public/
|
||||||
|
.yarn/
|
||||||
|
@ -7,53 +7,68 @@ cache:
|
|||||||
key: "$CI_BUILD_STAGE"
|
key: "$CI_BUILD_STAGE"
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
|
- mirror
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
- trigger
|
- trigger
|
||||||
- pages
|
- pages
|
||||||
|
|
||||||
|
mirror:
|
||||||
|
stage: mirror
|
||||||
|
script:
|
||||||
|
- npmci git mirror
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
testLEGACY:
|
testLEGACY:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test legacy
|
- npmci node install legacy
|
||||||
|
- npmci npm install
|
||||||
|
- npmci npm test
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
testLTS:
|
testLTS:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test lts
|
- npmci node install lts
|
||||||
|
- npmci npm install
|
||||||
|
- npmci npm test
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
testSTABLE:
|
testSTABLE:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test stable
|
- npmci node install stable
|
||||||
|
- npmci npm install
|
||||||
|
- npmci npm test
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
script:
|
script:
|
||||||
- npmci publish
|
- npmci npm prepare
|
||||||
|
- npmci npm publish
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
stage: trigger
|
stage: trigger
|
||||||
script:
|
script:
|
||||||
- npmci trigger
|
- npmci trigger
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
image: hosttoday/ht-docker-node:npmci
|
image: hosttoday/ht-docker-node:npmci
|
||||||
|
5
dist/smartcli.classes.smartcli.d.ts
vendored
5
dist/smartcli.classes.smartcli.d.ts
vendored
@ -1,3 +1,4 @@
|
|||||||
|
import * as smartq from 'smartq';
|
||||||
import { Subject } from 'rxjs';
|
import { Subject } from 'rxjs';
|
||||||
import { Objectmap } from 'lik';
|
import { Objectmap } from 'lik';
|
||||||
export interface ICommandPromiseObject {
|
export interface ICommandPromiseObject {
|
||||||
@ -11,10 +12,11 @@ export interface ITriggerObservableObject {
|
|||||||
export declare class Smartcli {
|
export declare class Smartcli {
|
||||||
argv: any;
|
argv: any;
|
||||||
questionsDone: any;
|
questionsDone: any;
|
||||||
parseStarted: any;
|
parseStarted: smartq.Deferred<any>;
|
||||||
commands: any;
|
commands: any;
|
||||||
questions: any;
|
questions: any;
|
||||||
version: string;
|
version: string;
|
||||||
|
private onlyOnProcessEnvCliCall;
|
||||||
/**
|
/**
|
||||||
* map of all Command/Promise objects to keep track
|
* map of all Command/Promise objects to keep track
|
||||||
*/
|
*/
|
||||||
@ -24,6 +26,7 @@ export declare class Smartcli {
|
|||||||
*/
|
*/
|
||||||
allTriggerObservablesMap: Objectmap<ITriggerObservableObject>;
|
allTriggerObservablesMap: Objectmap<ITriggerObservableObject>;
|
||||||
constructor();
|
constructor();
|
||||||
|
onlyTriggerOnProcessEnvCliCall(): void;
|
||||||
/**
|
/**
|
||||||
* adds an alias, meaning one equals the other in terms of command execution.
|
* adds an alias, meaning one equals the other in terms of command execution.
|
||||||
*/
|
*/
|
||||||
|
24
dist/smartcli.classes.smartcli.js
vendored
24
dist/smartcli.classes.smartcli.js
vendored
@ -7,6 +7,7 @@ const plugins = require("./smartcli.plugins");
|
|||||||
const lik_1 = require("lik");
|
const lik_1 = require("lik");
|
||||||
class Smartcli {
|
class Smartcli {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
this.onlyOnProcessEnvCliCall = false;
|
||||||
/**
|
/**
|
||||||
* map of all Command/Promise objects to keep track
|
* map of all Command/Promise objects to keep track
|
||||||
*/
|
*/
|
||||||
@ -19,6 +20,9 @@ class Smartcli {
|
|||||||
this.questionsDone = smartq.defer();
|
this.questionsDone = smartq.defer();
|
||||||
this.parseStarted = smartq.defer();
|
this.parseStarted = smartq.defer();
|
||||||
}
|
}
|
||||||
|
onlyTriggerOnProcessEnvCliCall() {
|
||||||
|
this.onlyOnProcessEnvCliCall = true;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* adds an alias, meaning one equals the other in terms of command execution.
|
* adds an alias, meaning one equals the other in terms of command execution.
|
||||||
*/
|
*/
|
||||||
@ -41,9 +45,6 @@ class Smartcli {
|
|||||||
if (this.argv._.indexOf(commandNameArg) === 0) {
|
if (this.argv._.indexOf(commandNameArg) === 0) {
|
||||||
done.resolve(this.argv);
|
done.resolve(this.argv);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
done.reject(this.argv);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
@ -113,10 +114,17 @@ class Smartcli {
|
|||||||
this.parseStarted.promise
|
this.parseStarted.promise
|
||||||
.then(() => {
|
.then(() => {
|
||||||
if (this.argv._.length === 0 && !this.argv.v) {
|
if (this.argv._.length === 0 && !this.argv.v) {
|
||||||
done.resolve(this.argv);
|
if (this.onlyOnProcessEnvCliCall) {
|
||||||
}
|
if (process.env.CLI_CALL === 'true') {
|
||||||
else {
|
done.resolve(this.argv);
|
||||||
done.reject(this.argv);
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
done.resolve(this.argv);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return done.promise;
|
return done.promise;
|
||||||
@ -131,4 +139,4 @@ class Smartcli {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.Smartcli = Smartcli;
|
exports.Smartcli = Smartcli;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkuY2xhc3Nlcy5zbWFydGNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBZ0M7QUFDaEMsK0JBQThCO0FBRTlCLDhDQUE2QztBQUU3QyxpQkFBaUI7QUFDakIsNkJBQStCO0FBYS9CO0lBa0JFO1FBVkE7O1dBRUc7UUFDSCwwQkFBcUIsR0FBRyxJQUFJLGVBQVMsRUFBeUIsQ0FBQTtRQUU5RDs7V0FFRztRQUNILDZCQUF3QixHQUFHLElBQUksZUFBUyxFQUE0QixDQUFBO1FBR2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQTtRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsTUFBTSxFQUFFLFFBQVE7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDN0MsTUFBTSxDQUFBO0lBQ1IsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxjQUFzQjtRQUMvQixJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFPLENBQUE7UUFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQztZQUM3QixXQUFXLEVBQUUsY0FBYztZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPO2FBQ3RCLElBQUksQ0FBQztZQUNKLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxD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
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkuY2xhc3Nlcy5zbWFydGNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBZ0M7QUFDaEMsK0JBQThCO0FBRTlCLDhDQUE2QztBQUU3QyxpQkFBaUI7QUFDakIsNkJBQStCO0FBYS9CO0lBbUJFO1FBWlEsNEJBQXVCLEdBQUcsS0FBSyxDQUFBO1FBRXZDOztXQUVHO1FBQ0gsMEJBQXFCLEdBQUcsSUFBSSxlQUFTLEVBQXlCLENBQUE7UUFFOUQ7O1dBRUc7UUFDSCw2QkFBd0IsR0FBRyxJQUFJLGVBQVMsRUFBNEIsQ0FBQTtRQUdsRSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDcEMsQ0FBQztJQUVELDhCQUE4QjtRQUM1QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFBO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBRSxNQUFNLEVBQUUsUUFBUTtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUM3QyxNQUFNLENBQUE7SUFDUixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFFLGNBQXNCO1FBQ2hDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQU8sQ0FBQTtRQUM5QixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDO1lBQzdCLFdBQVcsRUFBRSxjQUFjO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUE7UUFD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
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"npmci": {
|
"npmci": {
|
||||||
"globalNpmTools": [
|
"npmGlobalTools": [
|
||||||
"npmts"
|
"npmts"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
18
package.json
18
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "smartcli",
|
"name": "smartcli",
|
||||||
"version": "2.0.4",
|
"version": "2.0.8",
|
||||||
"description": "nodejs wrapper for CLI related tasks",
|
"description": "nodejs wrapper for CLI related tasks",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist/index.d.ts",
|
||||||
@ -29,16 +29,16 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/smartcli",
|
"homepage": "https://gitlab.com/pushrocks/smartcli",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/yargs": "6.x.x",
|
"@types/yargs": "8.x.x",
|
||||||
"beautylog": "^6.1.10",
|
"beautylog": "^6.1.10",
|
||||||
"lik": "^1.0.30",
|
"lik": "^1.0.42",
|
||||||
"rxjs": "^5.3.0",
|
"rxjs": "^5.4.3",
|
||||||
"smartparam": "0.1.1",
|
"smartparam": "1.0.2",
|
||||||
"smartq": "^1.1.1",
|
"smartq": "^1.1.6",
|
||||||
"typings-global": "^1.0.14",
|
"typings-global": "^1.0.20",
|
||||||
"yargs": "^7.1.0"
|
"yargs": "^9.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"tapbundle": "^1.0.5"
|
"tapbundle": "^1.1.8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
33
test/test.ts
33
test/test.ts
@ -1,44 +1,45 @@
|
|||||||
import { tap, expect } from 'tapbundle'
|
import { tap, expect } from 'tapbundle'
|
||||||
|
import { Subject } from 'rxjs'
|
||||||
|
|
||||||
import smartcli = require('../dist/index')
|
import smartcli = require('../ts/index')
|
||||||
|
|
||||||
let smartCliTestObject: smartcli.Smartcli
|
let smartCliTestObject: smartcli.Smartcli
|
||||||
|
|
||||||
tap.test('should create a new Smartcli', async () => {
|
tap.test('should create a new Smartcli', async () => {
|
||||||
smartCliTestObject = new smartcli.Smartcli()
|
smartCliTestObject = new smartcli.Smartcli()
|
||||||
return expect(smartCliTestObject).be.instanceof(smartcli.Smartcli)
|
expect(smartCliTestObject).to.be.instanceof(smartcli.Smartcli)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
tap.test('should add an command', async () => {
|
tap.test('should add an command', async () => {
|
||||||
smartCliTestObject.addCommand('awesome')
|
expect(smartCliTestObject.addCommand('awesome')).to.not.throw()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
tap.test('should start parsing a standardTask', async () => {
|
tap.test('should start parsing a standardTask', async () => {
|
||||||
smartCliTestObject.standardTask()
|
expect(smartCliTestObject.standardTask()).to.be.instanceOf(Promise)
|
||||||
.then(() => {
|
|
||||||
console.log('this is the standard Task!')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
let hasExecuted: boolean = false
|
let hasExecuted: boolean = false
|
||||||
|
|
||||||
tap.test('should accept a command', async () => {
|
tap.test('should accept a command', async () => {
|
||||||
smartCliTestObject.addTrigger('triggerme')
|
smartCliTestObject.addTrigger('triggerme')
|
||||||
.subscribe(() => {
|
.subscribe(() => {
|
||||||
hasExecuted = true
|
hasExecuted = true
|
||||||
})
|
})
|
||||||
})
|
expect(smartCliTestObject.addTrigger('triggerme')).to.be.instanceof(Subject)
|
||||||
tap.test('should not have executed yet', async () => {
|
|
||||||
expect(hasExecuted).to.be.false
|
|
||||||
})
|
|
||||||
tap.test('should execute when triggered', async () => {
|
|
||||||
smartCliTestObject.trigger('triggerme')
|
|
||||||
expect(hasExecuted).be.true
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
tap.test('should not have executed yet', async () => {
|
||||||
|
expect(hasExecuted).to.be.false()
|
||||||
|
})
|
||||||
|
|
||||||
|
tap.test('should execute when triggered', async () => {
|
||||||
|
smartCliTestObject.trigger('triggerme')
|
||||||
|
expect(hasExecuted).be.true()
|
||||||
|
})
|
||||||
|
|
||||||
tap.test('should start parsing the CLI input', async () => {
|
tap.test('should start parsing the CLI input', async () => {
|
||||||
smartCliTestObject.startParse()
|
smartCliTestObject.startParse()
|
||||||
|
expect(await smartCliTestObject.parseStarted.promise).to.not.throw()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
tap.start()
|
||||||
|
@ -20,10 +20,11 @@ export interface ITriggerObservableObject {
|
|||||||
export class Smartcli {
|
export class Smartcli {
|
||||||
argv: any
|
argv: any
|
||||||
questionsDone
|
questionsDone
|
||||||
parseStarted
|
parseStarted: smartq.Deferred<any>
|
||||||
commands
|
commands
|
||||||
questions
|
questions
|
||||||
version: string
|
version: string
|
||||||
|
private onlyOnProcessEnvCliCall = false
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* map of all Command/Promise objects to keep track
|
* map of all Command/Promise objects to keep track
|
||||||
@ -35,16 +36,20 @@ export class Smartcli {
|
|||||||
*/
|
*/
|
||||||
allTriggerObservablesMap = new Objectmap<ITriggerObservableObject>()
|
allTriggerObservablesMap = new Objectmap<ITriggerObservableObject>()
|
||||||
|
|
||||||
constructor() {
|
constructor () {
|
||||||
this.argv = plugins.yargs
|
this.argv = plugins.yargs
|
||||||
this.questionsDone = smartq.defer()
|
this.questionsDone = smartq.defer()
|
||||||
this.parseStarted = smartq.defer()
|
this.parseStarted = smartq.defer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onlyTriggerOnProcessEnvCliCall () {
|
||||||
|
this.onlyOnProcessEnvCliCall = true
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* adds an alias, meaning one equals the other in terms of command execution.
|
* adds an alias, meaning one equals the other in terms of command execution.
|
||||||
*/
|
*/
|
||||||
addCommandAlias(keyArg, aliasArg): void {
|
addCommandAlias (keyArg, aliasArg): void {
|
||||||
this.argv = this.argv.alias(keyArg, aliasArg)
|
this.argv = this.argv.alias(keyArg, aliasArg)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -53,7 +58,7 @@ export class Smartcli {
|
|||||||
* adds a Command by returning a Promise that reacts to the specific commandString given.
|
* adds a Command by returning a Promise that reacts to the specific commandString given.
|
||||||
* Note: in e.g. "npm install something" the "install" is considered the command.
|
* Note: in e.g. "npm install something" the "install" is considered the command.
|
||||||
*/
|
*/
|
||||||
addCommand(commandNameArg: string): Promise<any> {
|
addCommand (commandNameArg: string): Promise<any> {
|
||||||
let done = smartq.defer<any>()
|
let done = smartq.defer<any>()
|
||||||
this.allCommandPromisesMap.add({
|
this.allCommandPromisesMap.add({
|
||||||
commandName: commandNameArg,
|
commandName: commandNameArg,
|
||||||
@ -63,8 +68,6 @@ export class Smartcli {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
if (this.argv._.indexOf(commandNameArg) === 0) {
|
if (this.argv._.indexOf(commandNameArg) === 0) {
|
||||||
done.resolve(this.argv)
|
done.resolve(this.argv)
|
||||||
} else {
|
|
||||||
done.reject(this.argv)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return done.promise
|
return done.promise
|
||||||
@ -73,7 +76,7 @@ export class Smartcli {
|
|||||||
/**
|
/**
|
||||||
* gets a Promise for a command word
|
* gets a Promise for a command word
|
||||||
*/
|
*/
|
||||||
getCommandPromiseByName(commandNameArg: string): Promise<void> {
|
getCommandPromiseByName (commandNameArg: string): Promise<void> {
|
||||||
return this.allCommandPromisesMap.find(commandDeferredObjectArg => {
|
return this.allCommandPromisesMap.find(commandDeferredObjectArg => {
|
||||||
return commandDeferredObjectArg.commandName === commandNameArg
|
return commandDeferredObjectArg.commandName === commandNameArg
|
||||||
}).promise
|
}).promise
|
||||||
@ -82,7 +85,7 @@ export class Smartcli {
|
|||||||
/**
|
/**
|
||||||
* adds a Trigger. Like addCommand(), but returns an subscribable observable
|
* adds a Trigger. Like addCommand(), but returns an subscribable observable
|
||||||
*/
|
*/
|
||||||
addTrigger(triggerNameArg: string) {
|
addTrigger (triggerNameArg: string) {
|
||||||
let triggerSubject = new Subject<any>()
|
let triggerSubject = new Subject<any>()
|
||||||
this.allTriggerObservablesMap.add({
|
this.allTriggerObservablesMap.add({
|
||||||
triggerName: triggerNameArg,
|
triggerName: triggerNameArg,
|
||||||
@ -98,7 +101,7 @@ export class Smartcli {
|
|||||||
* execute trigger by name
|
* execute trigger by name
|
||||||
* @param commandNameArg - the name of the command to trigger
|
* @param commandNameArg - the name of the command to trigger
|
||||||
*/
|
*/
|
||||||
trigger(triggerName: string) {
|
trigger (triggerName: string) {
|
||||||
let triggerSubject = this.allTriggerObservablesMap.find(triggerObservableObjectArg => {
|
let triggerSubject = this.allTriggerObservablesMap.find(triggerObservableObjectArg => {
|
||||||
return triggerObservableObjectArg.triggerName === triggerName
|
return triggerObservableObjectArg.triggerName === triggerName
|
||||||
}).subject
|
}).subject
|
||||||
@ -109,7 +112,7 @@ export class Smartcli {
|
|||||||
/**
|
/**
|
||||||
* allows to specify help text to be printed above the rest of the help text
|
* allows to specify help text to be printed above the rest of the help text
|
||||||
*/
|
*/
|
||||||
addHelp(optionsArg: {
|
addHelp (optionsArg: {
|
||||||
helpText: string
|
helpText: string
|
||||||
}) {
|
}) {
|
||||||
this.addCommand('help').then(argvArg => {
|
this.addCommand('help').then(argvArg => {
|
||||||
@ -120,7 +123,7 @@ export class Smartcli {
|
|||||||
/**
|
/**
|
||||||
* specify version to be printed for -v --version
|
* specify version to be printed for -v --version
|
||||||
*/
|
*/
|
||||||
addVersion(versionArg: string) {
|
addVersion (versionArg: string) {
|
||||||
this.version = versionArg
|
this.version = versionArg
|
||||||
this.addCommandAlias('v', 'version')
|
this.addCommandAlias('v', 'version')
|
||||||
this.parseStarted.promise
|
this.parseStarted.promise
|
||||||
@ -134,7 +137,7 @@ export class Smartcli {
|
|||||||
/**
|
/**
|
||||||
* returns promise that is resolved when no commands are specified
|
* returns promise that is resolved when no commands are specified
|
||||||
*/
|
*/
|
||||||
standardTask(): Promise<any> {
|
standardTask (): Promise<any> {
|
||||||
let done = smartq.defer<any>()
|
let done = smartq.defer<any>()
|
||||||
this.allCommandPromisesMap.add({
|
this.allCommandPromisesMap.add({
|
||||||
commandName: 'standard',
|
commandName: 'standard',
|
||||||
@ -143,9 +146,15 @@ export class Smartcli {
|
|||||||
this.parseStarted.promise
|
this.parseStarted.promise
|
||||||
.then(() => {
|
.then(() => {
|
||||||
if (this.argv._.length === 0 && !this.argv.v) {
|
if (this.argv._.length === 0 && !this.argv.v) {
|
||||||
done.resolve(this.argv)
|
if (this.onlyOnProcessEnvCliCall) {
|
||||||
} else {
|
if (process.env.CLI_CALL === 'true') {
|
||||||
done.reject(this.argv)
|
done.resolve(this.argv)
|
||||||
|
} else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
done.resolve(this.argv)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return done.promise
|
return done.promise
|
||||||
@ -154,7 +163,7 @@ export class Smartcli {
|
|||||||
/**
|
/**
|
||||||
* start the process of evaluating commands
|
* start the process of evaluating commands
|
||||||
*/
|
*/
|
||||||
startParse(): void {
|
startParse (): void {
|
||||||
this.argv = this.argv.argv
|
this.argv = this.argv.argv
|
||||||
this.parseStarted.resolve()
|
this.parseStarted.resolve()
|
||||||
return
|
return
|
||||||
|
Reference in New Issue
Block a user