|
|
@@ -7,6 +7,8 @@ Path = require "path"
|
|
|
logger = require "logger-sharelatex"
|
|
|
Metrics = require "./Metrics"
|
|
|
child_process = require "child_process"
|
|
|
+CommandRunner = require(Settings.clsi?.commandRunner or "./CommandRunner")
|
|
|
+fs = require("fs")
|
|
|
|
|
|
module.exports = CompileManager =
|
|
|
doCompile: (request, callback = (error, outputFiles) ->) ->
|
|
|
@@ -142,15 +144,12 @@ module.exports = CompileManager =
|
|
|
return results
|
|
|
|
|
|
wordcount: (project_id, file_name, callback = (error, pdfPositions) ->) ->
|
|
|
- base_dir = Settings.path.synctexBaseDir(project_id)
|
|
|
- file_path = base_dir + "/" + file_name
|
|
|
- CompileManager._runWordcount [file_path], (error, stdout) ->
|
|
|
- return callback(error) if error?
|
|
|
- logger.log project_id: project_id, file_name: file_name, stdout: stdout, "wordcount output"
|
|
|
- callback null, CompileManager._parseWordcountFromOutput(stdout)
|
|
|
+ file_path = "$COMPILE_DIR/" + file_name
|
|
|
+ command = [ "texcount", file_path, "-out=" + file_path + ".wc"]
|
|
|
+ directory = Path.join(Settings.path.compilesDir, project_id)
|
|
|
+ timeout = 10 * 1000
|
|
|
|
|
|
- _runWordcount: (args, callback = (error, stdout) ->) ->
|
|
|
- seconds = 1000
|
|
|
- child_process.execFile "texcount", args, timeout: 10 * seconds, (error, stdout, stderr) ->
|
|
|
+ CommandRunner.run project_id, command, directory, timeout, (error) ->
|
|
|
return callback(error) if error?
|
|
|
- callback(null, stdout)
|
|
|
+ stdout = fs.readFileSync(directory + "/" + file_name + ".wc", "utf-8")
|
|
|
+ callback null, CompileManager._parseWordcountFromOutput(stdout)
|