Procházet zdrojové kódy

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

the .tex files produced from knitr have macros which confuse chktex
Brian Gough před 10 roky
rodič
revize
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 ->