diff --git a/services/clsi/app/coffee/CompileManager.coffee b/services/clsi/app/coffee/CompileManager.coffee index d6c79da0e3..56d04db737 100644 --- a/services/clsi/app/coffee/CompileManager.coffee +++ b/services/clsi/app/coffee/CompileManager.coffee @@ -42,14 +42,12 @@ module.exports = CompileManager = logger.log project_id: request.project_id, user_id: request.user_id, time_taken: Date.now() - timer.start, "written files to disk" timer.done() - # FIXME - for incremental compiles we don't want to inject this multiple times injectDraftModeIfRequired = (callback) -> if request.draft DraftModeManager.injectDraftMode Path.join(compileDir, request.rootResourcePath), callback else callback() - # FIXME - for incremental compiles we may need to update output.tex every time createTikzFileIfRequired = (callback) -> if TikzManager.needsOutputFile(request.rootResourcePath, resourceList) TikzManager.injectOutputFile compileDir, request.rootResourcePath, callback diff --git a/services/clsi/app/coffee/DraftModeManager.coffee b/services/clsi/app/coffee/DraftModeManager.coffee index 253cbffdd3..2f9e931c0c 100644 --- a/services/clsi/app/coffee/DraftModeManager.coffee +++ b/services/clsi/app/coffee/DraftModeManager.coffee @@ -5,6 +5,9 @@ module.exports = DraftModeManager = injectDraftMode: (filename, callback = (error) ->) -> fs.readFile filename, "utf8", (error, content) -> return callback(error) if error? + # avoid adding draft mode more than once + if content?.indexOf("\\documentclass\[draft") >= 0 + return callback() modified_content = DraftModeManager._injectDraftOption content logger.log { content: content.slice(0,1024), # \documentclass is normally v near the top @@ -18,4 +21,4 @@ module.exports = DraftModeManager = # With existing options (must be first, otherwise both are applied) .replace(/\\documentclass\[/g, "\\documentclass[draft,") # Without existing options - .replace(/\\documentclass\{/g, "\\documentclass[draft]{") \ No newline at end of file + .replace(/\\documentclass\{/g, "\\documentclass[draft]{")