Skip to content

Commit c4bffab

Browse files
committed
Updated fileMode handling in tree_entry.js
1 parent 31d8f88 commit c4bffab

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

lib/tree_entry.js

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
var git = require('../'),
22
success = require('./utilities').success;
33

4+
var fileModeIsFile = function(fileMode, instance) {
5+
return fileMode === instance.fileModes.GIT_FILEMODE_BLOB ||
6+
fileMode === instance.fileModes.GIT_FILEMODE_BLOB_EXECUTABLE;
7+
};
8+
9+
var fileModeIsDirectory = function(fileMode, instance) {
10+
return fileMode === instance.fileModes.GIT_FILEMODE_TREE;
11+
};
12+
413
/**
514
* Convenience tree entry constructor.
615
*
@@ -29,12 +38,12 @@ var TreeEntry = function(rawRepo, rawTreeEntry) {
2938
* @enum {Integer}
3039
*/
3140
TreeEntry.prototype.fileModes = {
32-
/** 0000000 */ GIT_FILEMODE_NEW: git.raw.TreeEntry.GIT_FILEMODE_NEW,
33-
/** 0040000 */ GIT_FILEMODE_TREE: git.raw.TreeEntry.GIT_FILEMODE_TREE,
34-
/** 0100644 */ GIT_FILEMODE_BLOB: git.raw.TreeEntry.GIT_FILEMODE_BLOB,
35-
/** 0100755 */ GIT_FILEMODE_BLOB_EXECUTABLE: git.raw.TreeEntry.GIT_FILEMODE_BLOB_EXECUTABLE,
36-
/** 0120000 */ GIT_FILEMODE_LINK: git.raw.TreeEntry.GIT_FILEMODE_LINK,
37-
/** 0160000 */ GIT_FILEMODE_COMMIT: git.raw.TreeEntry.GIT_FILEMODE_COMMIT
41+
/** 0000000 */ GIT_FILEMODE_NEW: git.raw.TreeEntry.fileModes.GIT_FILEMODE_NEW,
42+
/** 0040000 */ GIT_FILEMODE_TREE: git.raw.TreeEntry.fileModes.GIT_FILEMODE_TREE,
43+
/** 0100644 */ GIT_FILEMODE_BLOB: git.raw.TreeEntry.fileModes.GIT_FILEMODE_BLOB,
44+
/** 0100755 */ GIT_FILEMODE_BLOB_EXECUTABLE: git.raw.TreeEntry.fileModes.GIT_FILEMODE_BLOB_EXECUTABLE,
45+
/** 0120000 */ GIT_FILEMODE_LINK: git.raw.TreeEntry.fileModes.GIT_FILEMODE_LINK,
46+
/** 0160000 */ GIT_FILEMODE_COMMIT: git.raw.TreeEntry.fileModes.GIT_FILEMODE_COMMIT
3847
};
3948

4049
/**
@@ -91,13 +100,13 @@ TreeEntry.prototype.isFile = function(callback) {
91100
*/
92101
var self = this;
93102
if (typeof self._cache.fileMode !== 'undefined') {
94-
callback(null, self._cache.fileMode === self.GIT_FILEMODE_BLOB);
103+
callback(null, fileModeIsFile(self._cache.fileMode, self));
95104
return;
96105
}
97106
self.rawEntry.fileMode(function(error, fileMode) {
98107
if (success(error, callback)) {
99108
self._cache.fileMode = fileMode;
100-
callback(null, self._cache.fileMode === self.GIT_FILEMODE_BLOB);
109+
callback(null, fileModeIsFile(self._cache.fileMode, self));
101110
}
102111
});
103112
};
@@ -110,13 +119,13 @@ TreeEntry.prototype.isFile = function(callback) {
110119
TreeEntry.prototype.isDirectory = function(callback) {
111120
var self = this;
112121
if (typeof self._cache.fileMode !== 'undefined') {
113-
callback(null, self._cache.fileMode === self.GIT_FILEMODE_TREE);
122+
callback(null, fileModeIsDirectory(self._cache.fileMode, self));
114123
return;
115124
}
116125
self.rawEntry.fileMode(function(error, fileMode) {
117126
if (success(error, callback)) {
118127
self._cache.fileMode = fileMode;
119-
callback(null, self._cache.fileMode === self.GIT_FILEMODE_TREE);
128+
callback(null, fileModeIsDirectory(self._cache.fileMode, self));
120129
}
121130
});
122131
};

0 commit comments

Comments
 (0)