Skip to content

Commit ff9f63b

Browse files
committed
Automatically exclude symlinks.
1 parent 05427e0 commit ff9f63b

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

bin/eslint.js

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,8 @@ function exclusionBasedFileListBuilder(excludePaths) {
5757

5858
allFiles.forEach(function(file, i, a){
5959
if(excludePaths.indexOf(file.split("/code/")[1]) < 0) {
60-
if(!fs.lstatSync(file).isDirectory()) {
61-
var extension = "." + file.split(".").pop();
62-
63-
if(extensions.indexOf(extension) >= 0) {
60+
if(fs.lstatSync(file).isFile()) {
61+
if (isFileWithMatchingExtension(file)) {
6462
analysisFiles.push(file);
6563
}
6664
}
@@ -71,11 +69,6 @@ function exclusionBasedFileListBuilder(excludePaths) {
7169
};
7270
}
7371

74-
function isFileWithMatchingExtension(file, extensions) {
75-
var extension = "." + file.split(".").pop();
76-
return (extensions.indexOf(extension) >= 0);
77-
}
78-
7972
function inclusionBasedFileListBuilder(includePaths) {
8073
// Uses glob to expand the files and directories in includePaths, filtering
8174
// down to match the list of desired extensions.
@@ -89,16 +82,15 @@ function inclusionBasedFileListBuilder(includePaths) {
8982
"/code/" + fileOrDirectory + "/**/**"
9083
);
9184
filesInThisDirectory.forEach(function(file, j){
92-
if(!fs.lstatSync(file).isDirectory()) {
93-
if (isFileWithMatchingExtension(file, extensions)) {
94-
analysisFiles.push(file);
95-
}
85+
if (isFileWithMatchingExtension(file, extensions)) {
86+
analysisFiles.push(file);
9687
}
9788
});
9889
} else {
9990
// if not, check for ending in *.js
100-
if (isFileWithMatchingExtension(fileOrDirectory, extensions)) {
101-
analysisFiles.push("/code/" + fileOrDirectory);
91+
var fullPath = "/code/" + fileOrDirectory
92+
if (isFileWithMatchingExtension(fullPath, extensions)) {
93+
analysisFiles.push(fullPath);
10294
}
10395
}
10496
});
@@ -107,6 +99,16 @@ function inclusionBasedFileListBuilder(includePaths) {
10799
};
108100
}
109101

102+
function isFileWithMatchingExtension(file, extensions) {
103+
var stats = fs.lstatSync(file);
104+
var extension = "." + file.split(".").pop();
105+
return (
106+
stats.isFile() &&
107+
!stats.isSymbolicLink()
108+
&& extensions.indexOf(extension) >= 0
109+
);
110+
}
111+
110112
var options = {
111113
extensions: [".js"], ignore: true, reset: false, useEslintrc: true
112114
};

0 commit comments

Comments
 (0)