diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-11-16 10:31:24 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-11-16 10:31:24 +0100 |
commit | e38f3bb88423a17a7d0b292d86805a37f72cbff2 (patch) | |
tree | ea363b244c57332ae17aee0141f8f2d4a7fe994a /lib | |
parent | 751cdd9b3b89f0569cd09ffe082998004496a949 (diff) | |
download | gitbook-e38f3bb88423a17a7d0b292d86805a37f72cbff2.zip gitbook-e38f3bb88423a17a7d0b292d86805a37f72cbff2.tar.gz gitbook-e38f3bb88423a17a7d0b292d86805a37f72cbff2.tar.bz2 |
Improve book.findFile to be case incensitive
Diffstat (limited to 'lib')
-rw-r--r-- | lib/book.js | 9 | ||||
-rw-r--r-- | lib/utils/fs.js | 12 |
2 files changed, 17 insertions, 4 deletions
diff --git a/lib/book.js b/lib/book.js index cb00ab1..93c9486 100644 --- a/lib/book.js +++ b/lib/book.js @@ -614,12 +614,13 @@ Book.prototype.findFile = function(filename) { var filepath = basename+ext; - return that.fileExists(filepath) - .then(function(exists) { - if (!exists) return null; + return fs.findFile(that.root, filepath) + .then(function(realFilepath) { + if (!realFilepath) return null; + return { parser: parsers.get(ext), - path: filepath + path: realFilepath }; }); }); diff --git a/lib/utils/fs.js b/lib/utils/fs.js index 716e3a0..b82701f 100644 --- a/lib/utils/fs.js +++ b/lib/utils/fs.js @@ -30,6 +30,7 @@ var fsUtils = { fs.exists(path, d.resolve); return d.promise; }, + findFile: findFile, existsSync: fs.existsSync.bind(fs), readFileSync: fs.readFileSync.bind(fs), clean: cleanFolder, @@ -178,4 +179,15 @@ function cleanFolder(root) { }); } +// Find a file in a folder (case incensitive) +// Return the real filename +function findFile(root, filename) { + return Q.nfcall(fs.readdir, root) + .then(function(files) { + return _.find(files, function(file) { + return (file.toLowerCase() == filename.toLowerCase()); + }); + }); +} + module.exports = fsUtils; |