Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
b6589d0850 | |||
0f2d68cf5f | |||
01e6411c29 | |||
b356bcbaed | |||
35b81dc6d9 | |||
47321b02b8 | |||
7c0af2b0bc | |||
ced0ce7b53 |
@ -56,13 +56,17 @@ trigger:
|
|||||||
- docker
|
- docker
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
image: hosttoday/ht-docker-node:npmpage
|
image: hosttoday/ht-docker-node:npmci
|
||||||
stage: pages
|
stage: pages
|
||||||
script:
|
script:
|
||||||
- npmci command npmpage --publish gitlab
|
- npmci command yarn global add npmpage
|
||||||
|
- npmci command npmpage
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
paths:
|
paths:
|
||||||
- public
|
- public
|
||||||
|
allow_failure: true
|
||||||
|
6
dist/smartshell.wrap.d.ts
vendored
6
dist/smartshell.wrap.d.ts
vendored
@ -18,12 +18,16 @@ export interface IExecResultStreaming {
|
|||||||
* executes a given command async
|
* executes a given command async
|
||||||
* @param commandStringArg
|
* @param commandStringArg
|
||||||
*/
|
*/
|
||||||
export declare let exec: (commandStringArg: string) => Promise<IExecResult>;
|
export declare let exec: (commandStringArg: string, silentArg?: boolean, strictArg?: boolean) => Promise<IExecResult>;
|
||||||
/**
|
/**
|
||||||
* executes a given command async and silent
|
* executes a given command async and silent
|
||||||
* @param commandStringArg
|
* @param commandStringArg
|
||||||
*/
|
*/
|
||||||
export declare let execSilent: (commandStringArg: string) => Promise<IExecResult>;
|
export declare let execSilent: (commandStringArg: string) => Promise<IExecResult>;
|
||||||
|
/**
|
||||||
|
* executes strict, meaning it rejects the promise if something happens
|
||||||
|
*/
|
||||||
|
export declare let execStrict: (commandStringArg: string) => Promise<IExecResult>;
|
||||||
/**
|
/**
|
||||||
* executes a command and allws you to stream output
|
* executes a command and allws you to stream output
|
||||||
*/
|
*/
|
||||||
|
56
dist/smartshell.wrap.js
vendored
56
dist/smartshell.wrap.js
vendored
@ -1,13 +1,42 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const plugins = require("./smartshell.plugins");
|
const plugins = require("./smartshell.plugins");
|
||||||
|
/**
|
||||||
|
* import path
|
||||||
|
*/
|
||||||
|
let importPath = (stringArg) => {
|
||||||
|
if (process.env.SMARTSHELL_PATH) {
|
||||||
|
let commandResult = `PATH=${process.env.SMARTSHELL_PATH} && ${stringArg}`;
|
||||||
|
// console.log(commandResult)
|
||||||
|
return commandResult;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return stringArg;
|
||||||
|
}
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* executes a given command async
|
* executes a given command async
|
||||||
* @param commandStringArg
|
* @param commandStringArg
|
||||||
*/
|
*/
|
||||||
exports.exec = (commandStringArg) => {
|
exports.exec = (commandStringArg, silentArg = false, strictArg = false) => {
|
||||||
let done = plugins.smartq.defer();
|
let done = plugins.smartq.defer();
|
||||||
plugins.shelljs.exec(commandStringArg, { async: true }, (code, stdout, stderr) => {
|
plugins.shelljs.exec(importPath(commandStringArg), { async: true, silent: silentArg }, (code, stdout, stderr) => {
|
||||||
|
if (stderr && (stderr !== '') && (!silentArg || strictArg)) {
|
||||||
|
console.log('StdErr found:');
|
||||||
|
console.log(stderr);
|
||||||
|
}
|
||||||
|
if (strictArg) {
|
||||||
|
done.reject(new Error(stderr));
|
||||||
|
return;
|
||||||
|
}
|
||||||
done.resolve({
|
done.resolve({
|
||||||
exitCode: code,
|
exitCode: code,
|
||||||
stdout: stdout
|
stdout: stdout
|
||||||
@ -19,22 +48,21 @@ exports.exec = (commandStringArg) => {
|
|||||||
* executes a given command async and silent
|
* executes a given command async and silent
|
||||||
* @param commandStringArg
|
* @param commandStringArg
|
||||||
*/
|
*/
|
||||||
exports.execSilent = (commandStringArg) => {
|
exports.execSilent = (commandStringArg) => __awaiter(this, void 0, void 0, function* () {
|
||||||
let done = plugins.smartq.defer();
|
return yield exports.exec(commandStringArg, true);
|
||||||
plugins.shelljs.exec(commandStringArg, { async: true, silent: true }, (code, stdout, stderr) => {
|
});
|
||||||
done.resolve({
|
/**
|
||||||
exitCode: code,
|
* executes strict, meaning it rejects the promise if something happens
|
||||||
stdout: stdout
|
*/
|
||||||
});
|
exports.execStrict = (commandStringArg) => __awaiter(this, void 0, void 0, function* () {
|
||||||
});
|
return yield exports.exec(commandStringArg, true, true);
|
||||||
return done.promise;
|
});
|
||||||
};
|
|
||||||
/**
|
/**
|
||||||
* executes a command and allws you to stream output
|
* executes a command and allws you to stream output
|
||||||
*/
|
*/
|
||||||
exports.execStreaming = (commandStringArg, silentArg = false) => {
|
exports.execStreaming = (commandStringArg, silentArg = false) => {
|
||||||
let childProcessEnded = plugins.smartq.defer();
|
let childProcessEnded = plugins.smartq.defer();
|
||||||
let execChildProcess = plugins.shelljs.exec(commandStringArg, { async: true, silent: silentArg }, (code, stdout, stderr) => {
|
let execChildProcess = plugins.shelljs.exec(importPath(commandStringArg), { async: true, silent: silentArg }, (code, stdout, stderr) => {
|
||||||
childProcessEnded.resolve({
|
childProcessEnded.resolve({
|
||||||
exitCode: code,
|
exitCode: code,
|
||||||
stdout: stdout
|
stdout: stdout
|
||||||
@ -79,4 +107,4 @@ exports.which = (cmd) => {
|
|||||||
});
|
});
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzaGVsbC53cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzaGVsbC53cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQStDO0FBc0IvQzs7O0dBR0c7QUFDUSxRQUFBLElBQUksR0FBRyxDQUFDLGdCQUF3QjtJQUN6QyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBZSxDQUFBO0lBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNO1FBQzNFLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDWCxRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7SUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQixDQUFDLENBQUE7QUFFRDs7O0dBR0c7QUFDUSxRQUFBLFVBQVUsR0FBRyxDQUFDLGdCQUF3QjtJQUMvQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBZSxDQUFBO0lBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDekYsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNYLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1EsUUFBQSxhQUFhLEdBQUcsQ0FBQyxnQkFBd0IsRUFBRSxZQUFxQixLQUFLO0lBQzlFLElBQUksaUJBQWlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQWUsQ0FBQTtJQUMzRCxJQUFJLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDbkgsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQztRQUNMLFlBQVksRUFBRSxnQkFBZ0I7UUFDOUIsWUFBWSxFQUFFLGlCQUFpQixDQUFDLE9BQU87S0FDeEMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxnQkFBd0I7SUFDeEQsTUFBTSxDQUFDLHFCQUFhLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDOUMsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNRLFFBQUEsa0JBQWtCLEdBQUcsQ0FBQyxnQkFBd0IsRUFBRSxRQUFnQixFQUFFLFlBQXFCLEtBQUs7SUFDckcsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNqQyxJQUFJLG1CQUFtQixHQUFHLHFCQUFhLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDcEUsbUJBQW1CLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBbUI7UUFDckUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVVLFFBQUEsd0JBQXdCLEdBQUcsQ0FBQyxnQkFBd0IsRUFBRSxRQUFnQjtJQUMvRSwwQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDdEQsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSxRQUFBLEtBQUssR0FBRyxDQUFDLEdBQVc7SUFDN0IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQVUsQ0FBQTtJQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFZO1FBQ25DLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2xCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDckIsQ0FBQyxDQUFBIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzaGVsbC53cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzaGVsbC53cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxnREFBK0M7QUFzQi9DOztHQUVHO0FBQ0gsSUFBSSxVQUFVLEdBQUcsQ0FBQyxTQUFTO0lBQ3pCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLGFBQWEsR0FBRyxRQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxPQUFPLFNBQVMsRUFBRSxDQUFBO1FBQ3pFLDZCQUE2QjtRQUM3QixNQUFNLENBQUMsYUFBYSxDQUFBO0lBQ3RCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sQ0FBQyxTQUFTLENBQUE7SUFDbEIsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVEOzs7R0FHRztBQUNRLFFBQUEsSUFBSSxHQUFHLENBQUMsZ0JBQXdCLEVBQUUsWUFBcUIsS0FBSyxFQUFFLFNBQVMsR0FBRyxLQUFLO0lBQ3hGLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFlLENBQUE7SUFDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTTtRQUMxRyxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxD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
|
@ -1,11 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "smartshell",
|
"name": "smartshell",
|
||||||
"version": "1.0.9",
|
"version": "1.0.13",
|
||||||
"description": "shell actions designed as promises",
|
"description": "shell actions designed as promises",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npmts --notest && ts-node --compilerOptions '{\"target\":\"es6\"}' test/test.ts)"
|
"test": "(npmts)",
|
||||||
|
"testLocal": "(ts-node --compilerOptions '{\"target\":\"es6\"}' test/test.ts)"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -22,12 +22,12 @@ tap.test('smartshell should stream a shell execution', async () => {
|
|||||||
done.resolve(data)
|
done.resolve(data)
|
||||||
})
|
})
|
||||||
let data = await done.promise
|
let data = await done.promise
|
||||||
expect(data).to.equal('5.0.4\n')
|
expect(data).to.match(/[0-9\.]*/)
|
||||||
await execStreamingResponse.finalPromise
|
await execStreamingResponse.finalPromise
|
||||||
})
|
})
|
||||||
|
|
||||||
tap.test('it should execute and wait for a line in the output', async () => {
|
tap.test('it should execute and wait for a line in the output', async () => {
|
||||||
await smartshell.execAndWaitForLine('npm -v', /5.0.4/)
|
await smartshell.execAndWaitForLine('echo "5.0.4"', /5.0.4/)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Smartshell class
|
// Smartshell class
|
||||||
|
@ -20,13 +20,34 @@ export interface IExecResultStreaming {
|
|||||||
finalPromise: Promise<IExecResult>
|
finalPromise: Promise<IExecResult>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* import path
|
||||||
|
*/
|
||||||
|
let importPath = (stringArg): string => {
|
||||||
|
if (process.env.SMARTSHELL_PATH) {
|
||||||
|
let commandResult = `PATH=${process.env.SMARTSHELL_PATH} && ${stringArg}`
|
||||||
|
// console.log(commandResult)
|
||||||
|
return commandResult
|
||||||
|
} else {
|
||||||
|
return stringArg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* executes a given command async
|
* executes a given command async
|
||||||
* @param commandStringArg
|
* @param commandStringArg
|
||||||
*/
|
*/
|
||||||
export let exec = (commandStringArg: string): Promise<IExecResult> => {
|
export let exec = (commandStringArg: string, silentArg: boolean = false, strictArg = false): Promise<IExecResult> => {
|
||||||
let done = plugins.smartq.defer<IExecResult>()
|
let done = plugins.smartq.defer<IExecResult>()
|
||||||
plugins.shelljs.exec(commandStringArg, { async: true }, (code, stdout, stderr) => {
|
plugins.shelljs.exec(importPath(commandStringArg), { async: true, silent: silentArg }, (code, stdout, stderr) => {
|
||||||
|
if (stderr && (stderr !== '') && (!silentArg || strictArg)) {
|
||||||
|
console.log('StdErr found:')
|
||||||
|
console.log(stderr)
|
||||||
|
}
|
||||||
|
if (strictArg) {
|
||||||
|
done.reject(new Error(stderr))
|
||||||
|
return
|
||||||
|
}
|
||||||
done.resolve({
|
done.resolve({
|
||||||
exitCode: code,
|
exitCode: code,
|
||||||
stdout: stdout
|
stdout: stdout
|
||||||
@ -39,15 +60,15 @@ export let exec = (commandStringArg: string): Promise<IExecResult> => {
|
|||||||
* executes a given command async and silent
|
* executes a given command async and silent
|
||||||
* @param commandStringArg
|
* @param commandStringArg
|
||||||
*/
|
*/
|
||||||
export let execSilent = (commandStringArg: string) => {
|
export let execSilent = async (commandStringArg: string): Promise<IExecResult> => {
|
||||||
let done = plugins.smartq.defer<IExecResult>()
|
return await exec(commandStringArg, true)
|
||||||
plugins.shelljs.exec(commandStringArg, { async: true, silent: true }, (code, stdout, stderr) => {
|
}
|
||||||
done.resolve({
|
|
||||||
exitCode: code,
|
/**
|
||||||
stdout: stdout
|
* executes strict, meaning it rejects the promise if something happens
|
||||||
})
|
*/
|
||||||
})
|
export let execStrict = async (commandStringArg: string): Promise<IExecResult> => {
|
||||||
return done.promise
|
return await exec(commandStringArg, true, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -55,7 +76,7 @@ export let execSilent = (commandStringArg: string) => {
|
|||||||
*/
|
*/
|
||||||
export let execStreaming = (commandStringArg: string, silentArg: boolean = false) => {
|
export let execStreaming = (commandStringArg: string, silentArg: boolean = false) => {
|
||||||
let childProcessEnded = plugins.smartq.defer<IExecResult>()
|
let childProcessEnded = plugins.smartq.defer<IExecResult>()
|
||||||
let execChildProcess = plugins.shelljs.exec(commandStringArg, {async: true, silent: silentArg}, (code, stdout, stderr) => {
|
let execChildProcess = plugins.shelljs.exec(importPath(commandStringArg), {async: true, silent: silentArg}, (code, stdout, stderr) => {
|
||||||
childProcessEnded.resolve({
|
childProcessEnded.resolve({
|
||||||
exitCode: code,
|
exitCode: code,
|
||||||
stdout: stdout
|
stdout: stdout
|
||||||
|
Reference in New Issue
Block a user