summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-11-16 10:31:24 +0100
committerSamy Pessé <samypesse@gmail.com>2015-11-16 10:31:24 +0100
commite38f3bb88423a17a7d0b292d86805a37f72cbff2 (patch)
treeea363b244c57332ae17aee0141f8f2d4a7fe994a /lib
parent751cdd9b3b89f0569cd09ffe082998004496a949 (diff)
downloadgitbook-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.js9
-rw-r--r--lib/utils/fs.js12
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;