Skip to content

Commit bfe0aec

Browse files
fix: During all gradle operations "Gradle build" message is printed
In case CLI executes any Gradle operation, it always prints `Gradle build...` message. Fix this by printing specific message for each operation, for example "Gradle clean..." when clean is executed. Also make some methods private as they are used only in AndroidProjectService and they were incorrectly added to the IPlatformProjectService interface.
1 parent 42e4210 commit bfe0aec

File tree

4 files changed

+32
-45
lines changed

4 files changed

+32
-45
lines changed

lib/definitions/project.d.ts

-10
Original file line numberDiff line numberDiff line change
@@ -436,16 +436,6 @@ interface IPlatformProjectService extends NodeJS.EventEmitter, IPlatformProjectS
436436
* Traverse through the production dependencies and find plugins that need build/rebuild
437437
*/
438438
checkIfPluginsNeedBuild(projectData: IProjectData): Promise<Array<any>>;
439-
440-
/**
441-
* Get gradle options the CLI generates when building project
442-
*/
443-
getBuildOptions(configurationFilePath?: string): Array<string>;
444-
445-
/**
446-
* Get gradle options the CLI generates when building project
447-
*/
448-
executeCommand(projectRoot: string, args: any, childProcessOpts?: any, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult>;
449439
}
450440

451441
interface ITestExecutionService {

lib/services/android-project-service.ts

+32-17
Original file line numberDiff line numberDiff line change
@@ -308,15 +308,15 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
308308
}
309309

310310
public async buildProject(projectRoot: string, projectData: IProjectData, buildConfig: IBuildConfig): Promise<void> {
311-
const buildOptions = this.getGradleBuildOptions(buildConfig, projectData);
311+
const gradleArgs = this.getGradleBuildOptions(buildConfig, projectData);
312312
if (this.$logger.getLevel() === "TRACE") {
313-
buildOptions.unshift("--stacktrace");
314-
buildOptions.unshift("--debug");
313+
gradleArgs.unshift("--stacktrace");
314+
gradleArgs.unshift("--debug");
315315
}
316316
if (buildConfig.release) {
317-
buildOptions.unshift("assembleRelease");
317+
gradleArgs.unshift("assembleRelease");
318318
} else {
319-
buildOptions.unshift("assembleDebug");
319+
gradleArgs.unshift("assembleDebug");
320320
}
321321

322322
const handler = (data: any) => {
@@ -326,10 +326,14 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
326326
await attachAwaitDetach(constants.BUILD_OUTPUT_EVENT_NAME,
327327
this.$childProcess,
328328
handler,
329-
this.executeCommand(this.getPlatformData(projectData).projectRoot,
330-
buildOptions,
331-
{ stdio: buildConfig.buildOutputStdio || "inherit" },
332-
{ emitOptions: { eventName: constants.BUILD_OUTPUT_EVENT_NAME }, throwError: true }));
329+
this.executeCommand({
330+
projectRoot: this.getPlatformData(projectData).projectRoot,
331+
gradleArgs,
332+
childProcessOpts: { stdio: buildConfig.buildOutputStdio || "inherit" },
333+
spawnFromEventOptions: { emitOptions: { eventName: constants.BUILD_OUTPUT_EVENT_NAME }, throwError: true },
334+
message: "Gradle build..."
335+
})
336+
);
333337
}
334338

335339
private getGradleBuildOptions(settings: IAndroidBuildOptionsSettings, projectData: IProjectData): Array<string> {
@@ -348,7 +352,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
348352
return buildOptions;
349353
}
350354

351-
public getBuildOptions(configurationFilePath?: string): Array<string> {
355+
private getBuildOptions(configurationFilePath?: string): Array<string> {
352356
this.$androidToolsInfo.validateInfo({ showWarningsAsErrors: true, validateTargetSdk: true });
353357

354358
const androidToolsInfo = this.$androidToolsInfo.getToolsInfo();
@@ -607,14 +611,23 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
607611
}
608612

609613
public stopServices(projectRoot: string): Promise<ISpawnResult> {
610-
return this.executeCommand(projectRoot, ["--stop", "--quiet"], {stdio: "pipe"});
614+
return this.executeCommand({
615+
projectRoot,
616+
gradleArgs: ["--stop", "--quiet"],
617+
childProcessOpts: { stdio: "pipe" },
618+
message: "Gradle stop services..."
619+
});
611620
}
612621

613622
public async cleanProject(projectRoot: string, projectData: IProjectData): Promise<void> {
614623
if (this.$androidToolsInfo.getToolsInfo().androidHomeEnvVar) {
615-
const buildOptions = this.getGradleBuildOptions({ release: false }, projectData);
616-
buildOptions.unshift("clean");
617-
await this.executeCommand(projectRoot, buildOptions);
624+
const gradleArgs = this.getGradleBuildOptions({ release: false }, projectData);
625+
gradleArgs.unshift("clean");
626+
await this.executeCommand({
627+
projectRoot,
628+
gradleArgs,
629+
message: "Gradle clean..."
630+
});
618631
}
619632
}
620633

@@ -676,16 +689,18 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
676689
return versionInManifest;
677690
}
678691

679-
public async executeCommand(projectRoot: string, gradleArgs: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
692+
private async executeCommand(opts: { projectRoot: string, gradleArgs: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions, message: string }): Promise<ISpawnResult> {
680693
if (this.$androidToolsInfo.getToolsInfo().androidHomeEnvVar) {
694+
const { projectRoot, gradleArgs, message, spawnFromEventOptions } = opts;
681695
const gradlew = this.$hostInfo.isWindows ? "gradlew.bat" : "./gradlew";
682696

683697
if (this.$logger.getLevel() === "INFO") {
684698
gradleArgs.push("--quiet");
685-
this.$logger.info("Gradle build...");
686699
}
687700

688-
childProcessOpts = childProcessOpts || {};
701+
this.$logger.info(message);
702+
703+
const childProcessOpts = opts.childProcessOpts || {};
689704
childProcessOpts.cwd = childProcessOpts.cwd || projectRoot;
690705
childProcessOpts.stdio = childProcessOpts.stdio || "inherit";
691706

lib/services/ios-project-service.ts

-9
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { IOSProvisionService } from "./ios-provision-service";
1414
import { IOSEntitlementsService } from "./ios-entitlements-service";
1515
import { XCConfigService } from "./xcconfig-service";
1616
import * as mobileprovision from "ios-mobileprovision-finder";
17-
import { SpawnOptions } from "child_process";
1817
import { BUILD_XCCONFIG_FILE_NAME } from "../constants";
1918

2019
interface INativeSourceCodeGroup {
@@ -126,10 +125,6 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ
126125
return true;
127126
}
128127

129-
public async executeCommand(projectRoot: string, args: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
130-
return { stderr: "", stdout: "", exitCode: 0 };
131-
}
132-
133128
public getAppResourcesDestinationDirectoryPath(projectData: IProjectData): string {
134129
const frameworkVersion = this.getFrameworkVersion(projectData);
135130

@@ -1039,10 +1034,6 @@ We will now place an empty obsolete compatability white screen LauncScreen.xib f
10391034
return [];
10401035
}
10411036

1042-
public getBuildOptions(configurationFilePath: string): Array<string> {
1043-
return [];
1044-
}
1045-
10461037
private getAllLibsForPluginWithFileExtension(pluginData: IPluginData, fileExtension: string): string[] {
10471038
const filterCallback = (fileName: string, pluginPlatformsFolderPath: string) => path.extname(fileName) === fileExtension;
10481039
return this.getAllNativeLibrariesForPlugin(pluginData, IOSProjectService.IOS_PLATFORM_NAME, filterCallback);

test/stubs.ts

-9
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import * as util from "util";
44
import * as chai from "chai";
55
import { EventEmitter } from "events";
6-
import { SpawnOptions } from "child_process";
76
import * as path from "path";
87
import * as constants from "./../lib/constants";
98
import { Yok } from "./../lib/common/yok";
@@ -355,10 +354,6 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
355354
return Promise.resolve();
356355
}
357356

358-
public async executeCommand(projectRoot: string, gradleArgs: string[], childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
359-
return { stderr: "", stdout: "", exitCode: 0 };
360-
}
361-
362357
async buildProject(projectRoot: string): Promise<void> {
363358
return Promise.resolve();
364359
}
@@ -380,10 +375,6 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
380375
return Promise.resolve();
381376
}
382377

383-
getBuildOptions(configurationFilePath?: string): Array<string> {
384-
return [];
385-
}
386-
387378
async removePluginNativeCode(pluginData: IPluginData): Promise<void> { }
388379

389380
async afterPrepareAllPlugins(): Promise<void> {

0 commit comments

Comments
 (0)