Преглед изворни кода

only run chktex on .tex files, not .Rtex files

the .tex files produced from knitr have macros which confuse chktex
Brian Gough пре 10 година
родитељ
комит
56429178df

+ 3 - 1
services/clsi/app/coffee/CompileManager.coffee

@@ -44,7 +44,9 @@ module.exports = CompileManager =
 
 			# set up environment variables for chktex
 			env = {}
-			if request.check?
+			# only run chktex on LaTeX files (not knitr .Rtex files or any others)
+			isLaTeXFile = request.rootResourcePath?.match(/\.tex$/i)
+			if request.check? and isLaTeXFile
 				env['CHKTEX_OPTIONS'] = '-nall -e9 -e10 -w15 -w16'
 				if request.check is 'error'
 					env['CHKTEX_EXIT_ON_ERROR'] =  1

+ 35 - 0
services/clsi/test/unit/coffee/CompileManagerTests.coffee

@@ -98,6 +98,41 @@ describe "CompileManager", ->
 					.calledWith(@compileDir + "/" + @rootResourcePath)
 					.should.equal true
 
+		describe "with a check option", ->
+			beforeEach ->
+				@request.check = "error"
+				@CompileManager.doCompile @request, @callback
+
+			it "should run chktex", ->
+				@LatexRunner.runLatex
+					.calledWith("#{@project_id}-#{@user_id}", {
+						directory: @compileDir
+						mainFile:  @rootResourcePath
+						compiler:  @compiler
+						timeout:   @timeout
+						image:     @image
+						environment: {'CHKTEX_OPTIONS': '-nall -e9 -e10 -w15 -w16', 'CHKTEX_EXIT_ON_ERROR':1}
+					})
+					.should.equal true
+
+		describe "with a knitr file and check options", ->
+			beforeEach ->
+				@request.rootResourcePath = "main.Rtex"
+				@request.check = "error"
+				@CompileManager.doCompile @request, @callback
+
+			it "should not run chktex", ->
+				@LatexRunner.runLatex
+					.calledWith("#{@project_id}-#{@user_id}", {
+						directory: @compileDir
+						mainFile:  "main.Rtex"
+						compiler:  @compiler
+						timeout:   @timeout
+						image:     @image
+						environment: @env
+					})
+					.should.equal true
+
 	describe "clearProject", ->
 		describe "succesfully", ->
 			beforeEach ->