diff --git a/debomatic-webui/lib/debomatic.coffee b/debomatic-webui/lib/debomatic.coffee index bfabc12..aff913e 100644 --- a/debomatic-webui/lib/debomatic.coffee +++ b/debomatic-webui/lib/debomatic.coffee @@ -1,7 +1,7 @@ fs = require("fs") config = require("./config") utils = require("./utils") -Tail = require("./tail") +Tail = utils.Tail e = config.events.broadcast _get_distributions = (callback) -> diff --git a/debomatic-webui/lib/tail.coffee b/debomatic-webui/lib/tail.coffee deleted file mode 100644 index 0381674..0000000 --- a/debomatic-webui/lib/tail.coffee +++ /dev/null @@ -1,29 +0,0 @@ -"use strict" -fs = require("fs") -Tail = require("tail").Tail -Tail::watchEvent = (e) -> - _this = this - if e is "change" - fs.stat @filename, (err, stats) -> - if err - _this.emit "error", err - return - _this.pos = stats.size if stats.size < _this.pos - if stats.size > _this.pos - _this.queue.push - start: _this.pos - end: stats.size - - _this.pos = stats.size - _this.internalDispatcher.emit "next" if _this.queue.length is 1 - - else if e is "rename" - @unwatch() - _this.emit "error", "File " + @filename + " deleted." - return - -Tail::close = -> - @unwatch() - return - -module.exports = Tail diff --git a/debomatic-webui/lib/utils.coffee b/debomatic-webui/lib/utils.coffee index 99f5035..294e1c4 100644 --- a/debomatic-webui/lib/utils.coffee +++ b/debomatic-webui/lib/utils.coffee @@ -1,7 +1,7 @@ path = require("path") fs = require("fs") config = require("./config") -Tail = require("./tail") +Tail = require("tail").Tail _check_no_backward = (backward_path) -> if typeof backward_path is 'string' @@ -104,6 +104,22 @@ errors_handler = (from, err, socket) -> socket.emit config.events.error, err.message if socket return +Tail::watchEvent = (e) -> + if e is 'change' + fs.stat @filename, (err, stats) => + @emit 'error', err if err + @pos = stats.size if stats.size < @pos #scenario where texts is not appended but it's actually a w+ + if stats.size > @pos + @queue.push({start: @pos, end: stats.size}) + @pos = stats.size + @internalDispatcher.emit("next") if @queue.length is 1 + else if e is 'rename' + @unwatch() + @emit "error", "File #{@filename} deleted" + +Tail::close = -> + @unwatch() + return module.exports.check_data_distribution = check_data_distribution module.exports.check_data_package = check_data_package @@ -115,3 +131,4 @@ module.exports.get_files_list = get_files_list module.exports.watch_path_onsocket = watch_path_onsocket module.exports.errors_handler = errors_handler module.exports.arrayEqual = arrayEqual +module.exports.Tail = Tail diff --git a/debomatic-webui/public/javascripts/page_distribution.js b/debomatic-webui/public/javascripts/page_distribution.js index a16ff2e..d581958 100644 --- a/debomatic-webui/public/javascripts/page_distribution.js +++ b/debomatic-webui/public/javascripts/page_distribution.js @@ -579,10 +579,10 @@ function Page_Distrubion(socket) { set: function (socket_error) { if ($('#error').is(':visible')) return; - socket_error = socket_error.replace(/File (.*) deleted./, - 'File removed  $1'); + socket_error = socket_error.replace(/File (.*) deleted(.*)/, + 'File removed  $1'); socket_error = socket_error.replace(/ENOENT, [a-z]+ '(.*)'/, - 'No such file or directory  $1'); + 'No such file or directory  $1'); $('#error .message').html(socket_error); error.view(); },