diff --git a/lib/services/platform-service.ts b/lib/services/platform-service.ts index d6beb3ec75..e37b779e8a 100644 --- a/lib/services/platform-service.ts +++ b/lib/services/platform-service.ts @@ -99,16 +99,27 @@ export class PlatformService implements IPlatformService { path.join(this.$projectData.platformsDir, platform)).wait(); frameworkDir = path.join(frameworkDir, constants.PROJECT_FRAMEWORK_FOLDER_NAME); - platformProjectService.createProject(platformData.projectRoot, frameworkDir).wait(); + try { + this.addPlatformCore(platformData, frameworkDir).wait(); + } catch(err) { + this.$fs.deleteDirectory(platformPath).wait(); + throw err; + } - // Need to remove unneeded node_modules folder - this.$fs.deleteDirectory(path.join("../", frameworkDir)).wait(); + this.$logger.out("Project successfully created."); - platformProjectService.interpolateData(platformData.projectRoot); - platformProjectService.afterCreateProject(platformData.projectRoot); + }).future()(); + } - this.$logger.out("Project successfully created."); + private addPlatformCore(platformData: IPlatformData, frameworkDir: string): IFuture { + return (() => { + platformData.platformProjectService.createProject(platformData.projectRoot, frameworkDir).wait(); + + // Need to remove unneeded node_modules folder + this.$fs.deleteDirectory(path.join("../", frameworkDir)).wait(); + platformData.platformProjectService.interpolateData(platformData.projectRoot); + platformData.platformProjectService.afterCreateProject(platformData.projectRoot); }).future()(); } diff --git a/lib/services/project-service.ts b/lib/services/project-service.ts index 9c4302ff6d..e5e520bcb6 100644 --- a/lib/services/project-service.ts +++ b/lib/services/project-service.ts @@ -54,12 +54,10 @@ export class ProjectService implements IProjectService { public createProject(projectName: string, projectId: string): IFuture { return(() => { - var projectDir = path.resolve(options.path || "."); - projectName = projectName || constants.DEFAULT_PROJECT_NAME; projectId = options.appid || this.$projectHelper.generateDefaultAppId(projectName); - projectDir = path.join(projectDir, projectName); + var projectDir = path.join(path.resolve(options.path || "."), projectName); this.$fs.createDirectory(projectDir).wait(); var customAppPath = this.getCustomAppPath(); @@ -99,9 +97,15 @@ export class ProjectService implements IProjectService { appPath = defaultTemplatePath; } - this.createProjectCore(projectDir, appPath, projectId, false).wait(); + try { + this.createProjectCore(projectDir, appPath, projectId, false).wait(); + } catch(err) { + this.$fs.deleteDirectory(projectDir).wait(); + throw err; + } this.$logger.out("Project %s was successfully created", projectName); + }).future()(); }