Skip to content

Commit 66d4484

Browse files
committed
optimize spawn default options get in cli.ts
Signed-off-by: zoupers <qy@zouper.cn>
1 parent 6b52b92 commit 66d4484

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/cli.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,21 @@ export class CLI {
2323
this._gaugePlugins = manifest.plugins;
2424
}
2525

26+
public static getDefaultSpawnOptions(): CommonSpawnOptions {
27+
// should only deal with platform specific options
28+
let options: CommonSpawnOptions = {};
29+
if(platform() === "win32") {
30+
options.shell = true;
31+
}
32+
return options;
33+
}
34+
2635
public static instance(): CLI {
2736
const gaugeCommand = this.getCommand(GaugeCommands.Gauge);
2837
let mvnCommand = this.getCommand(MAVEN_COMMAND);
2938
let gradleCommand = this.getGradleCommand();
3039
if (!gaugeCommand || gaugeCommand === '') return new CLI(gaugeCommand, {}, mvnCommand, gradleCommand);
31-
let options: CommonSpawnOptions = {};
32-
if(platform() === "win32") {
33-
options.shell = true;
34-
}
40+
let options = this.getDefaultSpawnOptions();
3541
let gv = spawnSync(
3642
gaugeCommand,
3743
[GaugeCommands.Version, GaugeCommands.MachineReadable],
@@ -75,10 +81,7 @@ export class CLI {
7581
let oc = window.createOutputChannel("Gauge Install");
7682
let chan = new OutputChannel(oc, `Installing gauge ${language} plugin ...\n`, "");
7783
return new Promise((resolve, reject) => {
78-
let options: CommonSpawnOptions = {};
79-
if (platform() === "win32") {
80-
options.shell = true;
81-
}
84+
let options = CLI.getDefaultSpawnOptions();
8285
let childProcess = spawn(
8386
this._gaugeCommand,
8487
[GaugeCommands.Install, language],
@@ -118,10 +121,9 @@ export class CLI {
118121

119122
private static getCommand(command: string): string {
120123
let validExecExt = [""];
121-
let options: CommonSpawnOptions = {};
124+
let options = CLI.getDefaultSpawnOptions();
122125
if (platform() === 'win32') {
123126
validExecExt.push(".bat", ".exe", ".cmd");
124-
options.shell = true;
125127
}
126128
for (const ext of validExecExt) {
127129
let executable = `${command}${ext}`;

0 commit comments

Comments
 (0)