.gitignore includes files flagged as ignored.
If a file is ignored in the project builder, it is now persisted into the .gitignore file in the project. Change-Id: Ic8e5d08b82da5809b1dc2a8427f6563dc9acf00b
This commit is contained in:
parent
1ee651fd0e
commit
57c560e7d5
4
.gitignore
vendored
4
.gitignore
vendored
@ -12,8 +12,8 @@ dist
|
||||
lib-cov
|
||||
logs
|
||||
node_modules
|
||||
npm-debug.log*
|
||||
npm-debug.log
|
||||
package
|
||||
pids
|
||||
reports
|
||||
www
|
||||
www
|
||||
|
@ -53,17 +53,34 @@
|
||||
* @returns {generator} The passed generator, for promise chaining.
|
||||
*/
|
||||
function configureGitIgnore (generator) {
|
||||
var ignoreContent = Object.keys(excludedPaths).sort().join('\n');
|
||||
var ignoreContent = buildGitignore();
|
||||
if (ignoreContent.length === 0) {
|
||||
// Delete the file if there's nothing to ignore.
|
||||
projectBuilder.removeFile(filePath);
|
||||
} else {
|
||||
projectBuilder.writeFile(filePath, ignoreContent);
|
||||
projectBuilder.writeFile(filePath, buildGitignore);
|
||||
}
|
||||
|
||||
return generator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the content of our .gitignore file from the configured list of excluded paths,
|
||||
* as well as any project-level configured ignoreFiles.
|
||||
*
|
||||
* @returns {string} The content of the .eslintignore file.
|
||||
*/
|
||||
function buildGitignore () {
|
||||
var ignoredFiles = projectBuilder.getIgnoredFiles();
|
||||
for (var i = 0; i < ignoredFiles.length; i++) {
|
||||
if (!excludedPaths.hasOwnProperty(ignoredFiles[i])) {
|
||||
excludedPaths[ignoredFiles[i]] = true;
|
||||
}
|
||||
}
|
||||
|
||||
return Object.keys(excludedPaths).sort().join('\n');
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
init: initGitignore,
|
||||
prompt: noop,
|
||||
|
@ -84,13 +84,48 @@
|
||||
|
||||
var files = projectBuilder.getIncludedFiles();
|
||||
var ignoreRef = files[0];
|
||||
var ignoreContent = ignoreRef.content.split('\n');
|
||||
var ignoreContent = ignoreRef.content().split('\n');
|
||||
expect(ignoreContent.length).toBe(2);
|
||||
|
||||
expect(ignoreContent[0]).toEqual('one');
|
||||
expect(ignoreContent[1]).toEqual('two');
|
||||
});
|
||||
|
||||
it('should include any files flagged as ignored in the project builder.',
|
||||
function () {
|
||||
mockGenerator.fs.write('.gitignore', '');
|
||||
projectBuilder.ignoreFile('foo/bar.json');
|
||||
|
||||
gitignore.init(mockGenerator);
|
||||
gitignore.prompt(mockGenerator);
|
||||
gitignore.configure(mockGenerator);
|
||||
|
||||
var files = projectBuilder.getIncludedFiles();
|
||||
var ignoreRef = files[0]; // There should only be one file.
|
||||
var ignoreContent = ignoreRef.content().split('\n');
|
||||
expect(ignoreContent.length).toBe(1);
|
||||
|
||||
expect(ignoreContent[0]).toBe('foo/bar.json');
|
||||
});
|
||||
|
||||
it('should de-duplicate file paths from multiple locations.',
|
||||
function () {
|
||||
// include 'node_modules' from both an existing file and from the project builder.
|
||||
mockGenerator.fs.write('.gitignore', ['node_modules'].join('\n'));
|
||||
projectBuilder.ignoreFile('node_modules');
|
||||
|
||||
gitignore.init(mockGenerator);
|
||||
gitignore.prompt(mockGenerator);
|
||||
gitignore.configure(mockGenerator);
|
||||
|
||||
var files = projectBuilder.getIncludedFiles();
|
||||
var ignoreRef = files[0]; // There should only be one file.
|
||||
var ignoreContent = ignoreRef.content().split('\n');
|
||||
expect(ignoreContent.length).toBe(1);
|
||||
|
||||
expect(ignoreContent[0]).toBe('node_modules');
|
||||
});
|
||||
|
||||
it('should sort the ignored files.',
|
||||
function () {
|
||||
mockGenerator.fs.write('.gitignore', ['b_line', 'a_line'].join('\n'));
|
||||
@ -101,7 +136,7 @@
|
||||
|
||||
var files = projectBuilder.getIncludedFiles();
|
||||
var ignoreRef = files[0];
|
||||
var ignoreContent = ignoreRef.content.split('\n');
|
||||
var ignoreContent = ignoreRef.content().split('\n');
|
||||
expect(ignoreContent.length).toBe(2);
|
||||
expect(ignoreContent[0]).toBe('a_line');
|
||||
expect(ignoreContent[1]).toBe('b_line');
|
||||
@ -117,7 +152,7 @@
|
||||
|
||||
var files = projectBuilder.getIncludedFiles();
|
||||
var ignoreRef = files[0];
|
||||
var ignoreContent = ignoreRef.content.split('\n');
|
||||
var ignoreContent = ignoreRef.content().split('\n');
|
||||
expect(ignoreContent.length).toBe(2);
|
||||
expect(ignoreContent[0]).toBe('1_one');
|
||||
expect(ignoreContent[1]).toBe('2_two');
|
||||
@ -133,7 +168,7 @@
|
||||
|
||||
var files = projectBuilder.getIncludedFiles();
|
||||
var ignoreRef = files[0];
|
||||
var ignoreContent = ignoreRef.content.split('\n');
|
||||
var ignoreContent = ignoreRef.content().split('\n');
|
||||
expect(ignoreContent.length).toBe(1);
|
||||
expect(ignoreContent[0]).toBe('1_one');
|
||||
});
|
||||
@ -148,7 +183,7 @@
|
||||
|
||||
var files = projectBuilder.getIncludedFiles();
|
||||
var ignoreRef = files[0];
|
||||
var ignoreContent = ignoreRef.content.split('\n');
|
||||
var ignoreContent = ignoreRef.content().split('\n');
|
||||
expect(ignoreContent.length).toBe(1);
|
||||
expect(ignoreContent[0]).toBe('1_one');
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user