Просмотр исходного кода

Add latexmkrc in FileTypeManager

Nate Stemen 8 лет назад
Родитель
Сommit
d108b11bc0

+ 3 - 6
services/web/app/coffee/Features/Uploads/FileTypeManager.coffee

@@ -3,7 +3,7 @@ Path = require("path")
 
 
 module.exports = FileTypeManager =
 module.exports = FileTypeManager =
 	TEXT_EXTENSIONS : [
 	TEXT_EXTENSIONS : [
-		"tex", "latex", "sty", "cls", "bst", "bib", "bibtex", "txt", "tikz", "rtex", "md", "asy"
+		"tex", "latex", "sty", "cls", "bst", "bib", "bibtex", "txt", "tikz", "rtex", "md", "asy", "latexmkrc"
 	]
 	]
 
 
 	IGNORE_EXTENSIONS : [
 	IGNORE_EXTENSIONS : [
@@ -34,7 +34,7 @@ module.exports = FileTypeManager =
 		extension = parts.slice(-1)[0]
 		extension = parts.slice(-1)[0]
 		if extension?
 		if extension?
 			extension = extension.toLowerCase()
 			extension = extension.toLowerCase()
-		binaryFile = (@TEXT_EXTENSIONS.indexOf(extension) == -1 or parts.length <= 1)
+		binaryFile = (@TEXT_EXTENSIONS.indexOf(extension) == -1 or parts.length <= 1) and parts[0] != 'latexmkrc'
 		
 		
 		if binaryFile
 		if binaryFile
 			return callback null, true
 			return callback null, true
@@ -52,13 +52,10 @@ module.exports = FileTypeManager =
 		if extension?
 		if extension?
 			extension = extension.toLowerCase()
 			extension = extension.toLowerCase()
 		ignore = false
 		ignore = false
-		if name[0] == "."
+		if name[0] == "." and extension != 'latexmkrc'
 			ignore = true
 			ignore = true
 		if @IGNORE_EXTENSIONS.indexOf(extension) != -1
 		if @IGNORE_EXTENSIONS.indexOf(extension) != -1
 			ignore = true
 			ignore = true
 		if @IGNORE_FILENAMES.indexOf(name) != -1
 		if @IGNORE_FILENAMES.indexOf(name) != -1
 			ignore = true
 			ignore = true
 		callback null, ignore
 		callback null, ignore
-
-
-

+ 14 - 4
services/web/test/unit/coffee/Uploads/FileTypeManagerTests.coffee

@@ -39,7 +39,7 @@ describe "FileTypeManager", ->
 		beforeEach ->
 		beforeEach ->
 			@stat = { size: 100 }
 			@stat = { size: 100 }
 			@fs.stat = sinon.stub().callsArgWith(1, null, @stat)
 			@fs.stat = sinon.stub().callsArgWith(1, null, @stat)
-			
+
 		it "should return .tex files as not binary", ->
 		it "should return .tex files as not binary", ->
 			@FileTypeManager.isBinary "file.tex", "/path/on/disk", (error, binary) ->
 			@FileTypeManager.isBinary "file.tex", "/path/on/disk", (error, binary) ->
 				binary.should.equal false
 				binary.should.equal false
@@ -80,10 +80,18 @@ describe "FileTypeManager", ->
 			@FileTypeManager.isBinary "tex", "/path/on/disk", (error, binary) ->
 			@FileTypeManager.isBinary "tex", "/path/on/disk", (error, binary) ->
 				binary.should.equal true
 				binary.should.equal true
 
 
+		it "should return .latexmkrc file as not binary", ->
+			@FileTypeManager.isBinary ".latexmkrc", "/path/on/disk", (error, binary) ->
+				binary.should.equal false
+
+		it "should return latexmkrc file as not binary", ->
+			@FileTypeManager.isBinary "latexmkrc", "/path/on/disk", (error, binary) ->
+				binary.should.equal false
+
 		it "should ignore the case of an extension", ->
 		it "should ignore the case of an extension", ->
 			@FileTypeManager.isBinary "file.TEX", "/path/on/disk", (error, binary) ->
 			@FileTypeManager.isBinary "file.TEX", "/path/on/disk", (error, binary) ->
 				binary.should.equal false
 				binary.should.equal false
-		
+
 		it "should return large text files as binary", ->
 		it "should return large text files as binary", ->
 			@stat.size = 2 * 1024 * 1024 # 2Mb
 			@stat.size = 2 * 1024 * 1024 # 2Mb
 			@FileTypeManager.isBinary "file.tex", "/path/on/disk", (error, binary) ->
 			@FileTypeManager.isBinary "file.tex", "/path/on/disk", (error, binary) ->
@@ -98,6 +106,10 @@ describe "FileTypeManager", ->
 			@FileTypeManager.shouldIgnore "path/.git", (error, ignore) ->
 			@FileTypeManager.shouldIgnore "path/.git", (error, ignore) ->
 				ignore.should.equal true
 				ignore.should.equal true
 
 
+		it "should not ignore .latexmkrc dotfile", ->
+			@FileTypeManager.shouldIgnore "path/.latexmkrc", (error, ignore) ->
+				ignore.should.equal false
+
 		it "should ignore __MACOSX", ->
 		it "should ignore __MACOSX", ->
 			@FileTypeManager.shouldIgnore "path/__MACOSX", (error, ignore) ->
 			@FileTypeManager.shouldIgnore "path/__MACOSX", (error, ignore) ->
 				ignore.should.equal true
 				ignore.should.equal true
@@ -109,5 +121,3 @@ describe "FileTypeManager", ->
 		it "should ignore the case of the extension", ->
 		it "should ignore the case of the extension", ->
 			@FileTypeManager.shouldIgnore "file.AUX", (error, ignore) ->
 			@FileTypeManager.shouldIgnore "file.AUX", (error, ignore) ->
 				ignore.should.equal true
 				ignore.should.equal true
-			
-