diff --git a/package.json b/package.json index 2b11252..a44faf7 100644 --- a/package.json +++ b/package.json @@ -37,4 +37,4 @@ "@types/which": "^1.3.1", "which": "^1.3.1" } -} +} \ No newline at end of file diff --git a/ts/smartshell.classes.shellenv.ts b/ts/smartshell.classes.shellenv.ts index 1198034..a011f58 100644 --- a/ts/smartshell.classes.shellenv.ts +++ b/ts/smartshell.classes.shellenv.ts @@ -33,11 +33,26 @@ export class ShellEnv { */ private _setPath(commandStringArg): string { let commandResult = commandStringArg; - let commandPath = process.env.PATH; + let commandPaths: string[] = []; + commandPaths = commandPaths.concat(process.env.PATH.split(':')); 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; } @@ -60,12 +75,21 @@ export class ShellEnv { createEnvExecString(commandArg): string { let commandResult = ''; - if (this.executor === 'bash') { - let sourceString = ''; - for (let sourceFilePath of this.sourceFileArray) { - sourceString = sourceString + `source ${sourceFilePath} && `; - } - commandResult = `bash -c '${sourceString} ${commandArg}'`; + let sourceString = ''; + + switch (this.executor) { + case 'bash': + for (let sourceFilePath of this.sourceFileArray) { + 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); return commandResult; diff --git a/ts/smartshell.classes.shelllog.ts b/ts/smartshell.classes.shelllog.ts index 4afc75c..d599ee3 100644 --- a/ts/smartshell.classes.shelllog.ts +++ b/ts/smartshell.classes.shelllog.ts @@ -13,13 +13,7 @@ export class ShellLog { */ logToConsole(dataArg: string | Buffer): void { // make sure we have the data as string - const dataString: string = (() => { - if (Buffer.isBuffer(dataArg)) { - return dataArg.toString(); - } - return dataArg; - })(); - process.stdout.write(dataString); + process.stdout.write(dataArg); } /**