Skip to content

Commit efa4711

Browse files
authored
Make some minor style/readability tidies to command spawning code (#1052)
* Display an error if a given gauge/mvn command cannot be found Signed-off-by: Chad Wilson <[email protected]> * Prefer direct .exe to .bat on Windows Signed-off-by: Chad Wilson <[email protected]> * Make the code a little terser Signed-off-by: Chad Wilson <[email protected]> --------- Signed-off-by: Chad Wilson <[email protected]>
1 parent cb9a705 commit efa4711

1 file changed

Lines changed: 11 additions & 27 deletions

File tree

src/cli.ts

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,16 @@ export class CLI {
2525

2626
public static getDefaultSpawnOptions(): CommonSpawnOptions {
2727
// should only deal with platform specific options
28-
let options: CommonSpawnOptions = {};
29-
if(platform() === "win32") {
30-
options.shell = true;
31-
}
32-
return options;
28+
return platform() === "win32" ? { shell: true } : {};
3329
}
3430

3531
public static instance(): CLI {
3632
const gaugeCommand = this.getCommand(GaugeCommands.Gauge);
37-
let mvnCommand = this.getCommand(MAVEN_COMMAND);
33+
const mvnCommand = this.getCommand(MAVEN_COMMAND);
3834
let gradleCommand = this.getGradleCommand();
3935
if (!gaugeCommand || gaugeCommand === '') return new CLI(gaugeCommand, {}, mvnCommand, gradleCommand);
4036
let options = this.getDefaultSpawnOptions();
41-
let gv = spawnSync(
42-
gaugeCommand,
43-
[GaugeCommands.Version, GaugeCommands.MachineReadable],
44-
options
45-
);
37+
let gv = spawnSync(gaugeCommand, [GaugeCommands.Version, GaugeCommands.MachineReadable], options);
4638
let gaugeVersionInfo;
4739
try {
4840
gaugeVersionInfo = JSON.parse(gv.stdout.toString());
@@ -82,11 +74,7 @@ export class CLI {
8274
let chan = new OutputChannel(oc, `Installing gauge ${language} plugin ...\n`, "");
8375
return new Promise((resolve, reject) => {
8476
let options = CLI.getDefaultSpawnOptions();
85-
let childProcess = spawn(
86-
this._gaugeCommand,
87-
[GaugeCommands.Install, language],
88-
options
89-
);
77+
let childProcess = spawn(this._gaugeCommand, [GaugeCommands.Install, language], options);
9078
childProcess.stdout.on('data', (chunk) => chan.appendOutBuf(chunk.toString()));
9179
childProcess.stderr.on('data', (chunk) => chan.appendErrBuf(chunk.toString()));
9280
childProcess.on('exit', (code) => {
@@ -106,7 +94,7 @@ export class CLI {
10694
}
10795

10896
public gradleCommand() {
109-
return this._gradleCommand;
97+
return this._gradleCommand;
11098
}
11199

112100
public gaugeVersionString(): string {
@@ -120,11 +108,8 @@ export class CLI {
120108
}
121109

122110
public static getCommandCandidates(command: string): string[] {
123-
let validExecExt = [""];
124-
if (platform() === 'win32') {
125-
validExecExt.push(".bat", ".exe", ".cmd");
126-
}
127-
return validExecExt.map((ext) => `${command}${ext}`);
111+
return (platform() === 'win32' ? [".exe", ".bat", ".cmd"] : [""])
112+
.map((ext) => `${command}${ext}`);
128113
}
129114

130115
public static checkSpawnable(command: string): boolean {
@@ -133,14 +118,13 @@ export class CLI {
133118
}
134119

135120
private static getCommand(command: string): string {
136-
let possiableCommands = this.getCommandCandidates(command);
137-
for (const possiableCommand of possiableCommands) {
138-
if (this.checkSpawnable(possiableCommand)) return possiableCommand;
121+
for (const candidate of this.getCommandCandidates(command)) {
122+
if (this.checkSpawnable(candidate)) return candidate;
139123
}
124+
window.showErrorMessage(`Unable to find executable launch command: ${command}`);
140125
}
141126

142127
private static getGradleCommand() {
143-
if (platform() === 'win32') return `${GRADLE_COMMAND}.bat`;
144-
return `./${GRADLE_COMMAND}`;
128+
return platform() === 'win32' ? `${GRADLE_COMMAND}.bat` : `./${GRADLE_COMMAND}`;
145129
}
146130
}

0 commit comments

Comments
 (0)