From 6a0a88acc3b3c2370325415e3a9c5e7a86ce7c3a Mon Sep 17 00:00:00 2001 From: Mike Brocchi Date: Mon, 25 Sep 2017 11:56:25 -0400 Subject: [PATCH] fix(@schematics/angular): Add skip git option to prevent creating gitignore file fixes angular/angular-cli#7686 --- packages/schematics/angular/application/index.ts | 1 + packages/schematics/angular/application/index_spec.ts | 8 ++++++++ packages/schematics/angular/application/schema.d.ts | 4 ++++ packages/schematics/angular/application/schema.json | 6 ++++++ 4 files changed, 19 insertions(+) diff --git a/packages/schematics/angular/application/index.ts b/packages/schematics/angular/application/index.ts index 9c9f0c7798..ca68477b3c 100644 --- a/packages/schematics/angular/application/index.ts +++ b/packages/schematics/angular/application/index.ts @@ -94,6 +94,7 @@ export default function (options: ApplicationOptions): Rule { mergeWith( apply(url('./files'), [ options.minimal ? filter(minimalPathFilter) : noop(), + options.skipGit ? filter(path => !path.endsWith('/__dot__gitignore')) : noop(), template({ utils: stringUtils, 'dot': '.', diff --git a/packages/schematics/angular/application/index_spec.ts b/packages/schematics/angular/application/index_spec.ts index 30db255c72..8a39a7adf1 100644 --- a/packages/schematics/angular/application/index_spec.ts +++ b/packages/schematics/angular/application/index_spec.ts @@ -91,4 +91,12 @@ describe('Application Schematic', () => { const routingModuleContent = getFileContent(tree, '/foo/src/app/app-routing.module.ts'); expect(routingModuleContent).toMatch(/RouterModule.forRoot\(routes\)/); }); + + it('should handle the skip git flag', () => { + const options = { ...defaultOptions, skipGit: true }; + + const tree = schematicRunner.runSchematic('application', options); + const files = tree.files; + expect(files.indexOf('/foo/.gitignore')).toEqual(-1); + }); }); diff --git a/packages/schematics/angular/application/schema.d.ts b/packages/schematics/angular/application/schema.d.ts index 5747c51f19..1492b62157 100644 --- a/packages/schematics/angular/application/schema.d.ts +++ b/packages/schematics/angular/application/schema.d.ts @@ -44,6 +44,10 @@ export interface Schema { * Skip creating spec files. */ skipTests?: boolean; + /** + * Skip initializing a git repository. + */ + skipGit?: boolean; /** * Should create a minimal app. */ diff --git a/packages/schematics/angular/application/schema.json b/packages/schematics/angular/application/schema.json index 944437ffc1..4218bc2099 100644 --- a/packages/schematics/angular/application/schema.json +++ b/packages/schematics/angular/application/schema.json @@ -69,6 +69,12 @@ "default": false, "alias": "st" }, + "skipGit": { + "description": "Skip initializing a git repository.", + "type": "boolean", + "default": false, + "alias": "sg" + }, "minimal": { "description": "Should create a minimal app.", "type": "boolean",