Compare commits

...

7 Commits

Author SHA1 Message Date
32c33cad5b 2.0.14 2019-05-14 17:28:38 +02:00
0758e58fa4 fix(core): update 2019-05-14 17:28:38 +02:00
e981ca6bdd 2.0.13 2018-12-14 18:36:23 +01:00
2853a48708 fix(core): update 2018-12-14 18:36:23 +01:00
389f8f4a52 2.0.12 2018-12-14 18:35:31 +01:00
c1a537f052 fix(core): update 2018-12-14 18:35:31 +01:00
4701341c0c ensure WSL compatibility 2018-12-13 16:50:32 +01:00
5 changed files with 919 additions and 318 deletions

View File

@ -1,6 +1,7 @@
{ {
"npmci": { "npmci": {
"npmGlobalTools": [], "npmGlobalTools": [],
"npmAccessLevel": "public" "npmAccessLevel": "public",
"npmRegistryUrl": "registry.npmjs.org"
} }
} }

1166
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
{ {
"name": "@pushrocks/smartshell", "name": "@pushrocks/smartshell",
"private": false, "private": false,
"version": "2.0.11", "version": "2.0.14",
"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",
@ -24,16 +24,16 @@
}, },
"homepage": "https://gitlab.com/pushrocks/smartshell#README", "homepage": "https://gitlab.com/pushrocks/smartshell#README",
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.0.22", "@gitzone/tsbuild": "^2.1.11",
"@gitzone/tsrun": "^1.1.13", "@gitzone/tsrun": "^1.2.6",
"@gitzone/tstest": "^1.0.15", "@gitzone/tstest": "^1.0.20",
"@pushrocks/tapbundle": "^3.0.7", "@pushrocks/tapbundle": "^3.0.9",
"@types/node": "^10.12.10", "@types/node": "^12.0.1",
"tslint": "^5.11.0", "tslint": "^5.16.0",
"tslint-config-prettier": "^1.16.0" "tslint-config-prettier": "^1.18.0"
}, },
"dependencies": { "dependencies": {
"@pushrocks/smartpromise": "^2.0.5", "@pushrocks/smartpromise": "^3.0.2",
"@types/which": "^1.3.1", "@types/which": "^1.3.1",
"which": "^1.3.1" "which": "^1.3.1"
} }

View File

@ -33,11 +33,26 @@ export class ShellEnv {
*/ */
private _setPath(commandStringArg): string { private _setPath(commandStringArg): string {
let commandResult = commandStringArg; let commandResult = commandStringArg;
let commandPath = process.env.PATH; let commandPaths: string[] = [];
commandPaths = commandPaths.concat(process.env.PATH.split(':'));
if (process.env.SMARTSHELL_PATH) { if (process.env.SMARTSHELL_PATH) {
commandPath = `${commandPath}:${process.env.SMARTSHELL_PATH}`; commandPaths = commandPaths.concat(process.env.SMARTSHELL_PATH.split(':'));
} }
commandResult = `PATH=${commandPath} && ${commandStringArg}`;
// lets filter for unwanted paths
// Windows WSL
commandPaths = commandPaths.filter(commandPathArg => {
const filterResult =
!commandPathArg.startsWith('/mnt/c/') &&
!commandPathArg.startsWith('Files/1E') &&
!commandPathArg.includes(' ');
if (!filterResult) {
// console.log(`${commandPathArg} will be filtered!`);
}
return filterResult;
});
commandResult = `PATH=${commandPaths.join(':')} && ${commandStringArg}`;
return commandResult; return commandResult;
} }
@ -60,12 +75,21 @@ export class ShellEnv {
createEnvExecString(commandArg): string { createEnvExecString(commandArg): string {
let commandResult = ''; let commandResult = '';
if (this.executor === 'bash') { let sourceString = '';
let sourceString = '';
for (let sourceFilePath of this.sourceFileArray) { switch (this.executor) {
sourceString = sourceString + `source ${sourceFilePath} && `; case 'bash':
} for (let sourceFilePath of this.sourceFileArray) {
commandResult = `bash -c '${sourceString} ${commandArg}'`; sourceString = sourceString + `source ${sourceFilePath} && `;
}
commandResult = `bash -c '${sourceString}${commandArg}'`;
break;
case 'sh':
for (let sourceFilePath of this.sourceFileArray) {
sourceString = sourceString + `source ${sourceFilePath} && `;
}
commandResult = `${sourceString}${commandArg}`;
break;
} }
commandResult = this._setPath(commandResult); commandResult = this._setPath(commandResult);
return commandResult; return commandResult;

View File

@ -13,13 +13,7 @@ export class ShellLog {
*/ */
logToConsole(dataArg: string | Buffer): void { logToConsole(dataArg: string | Buffer): void {
// make sure we have the data as string // make sure we have the data as string
const dataString: string = (() => { process.stdout.write(dataArg);
if (Buffer.isBuffer(dataArg)) {
return dataArg.toString();
}
return dataArg;
})();
process.stdout.write(dataString);
} }
/** /**