ensure WSL compatibility

This commit is contained in:
Philipp Kunz 2018-12-13 16:50:32 +01:00
parent d5d347721a
commit 4701341c0c
3 changed files with 35 additions and 17 deletions

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 = '';
switch (this.executor) {
case 'bash':
for (let sourceFilePath of this.sourceFileArray) { for (let sourceFilePath of this.sourceFileArray) {
sourceString = sourceString + `source ${sourceFilePath} && `; sourceString = sourceString + `source ${sourceFilePath} && `;
} }
commandResult = `bash -c '${sourceString}${commandArg}'`; 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);
} }
/** /**