main.lua

changeset 67
a2a9dd606200
parent 65
629162fc0681
child 68
cd63f764d1bf
equal deleted inserted replaced
66:909c00296c2a 67:a2a9dd606200
1 #!/usr/bin/env luajit 1 #!/usr/bin/env luajit
2 2
3 local json = require "cjson"; 3 local json = require "cjson";
4 local time = require "socket".gettime; 4 local time = require "socket".gettime;
5 local sleep = require "socket".sleep;
5 6
6 local result_log_filename = nil; 7 local result_log_filename = nil;
7 local server_log_reader = nil; 8 local server_log_reader = nil;
9 local server_log_wait_time = 0.2;
10
8 local property_rules = {}; 11 local property_rules = {};
9 12
10 local function apply_object_properties(class, name, object) 13 local function apply_object_properties(class, name, object)
11 for _, rule in ipairs(property_rules) do 14 for _, rule in ipairs(property_rules) do
12 if (not(rule.class) or tostring(rule.class):lower() == tostring(class):lower()) 15 if (not(rule.class) or tostring(rule.class):lower() == tostring(class):lower())
39 result_log_filename = get_value(); 42 result_log_filename = get_value();
40 elseif opt == "--server-log" or opt == "-s" then 43 elseif opt == "--server-log" or opt == "-s" then
41 local server_log = assert(io.open(get_value(), "r")); 44 local server_log = assert(io.open(get_value(), "r"));
42 function server_log_reader() 45 function server_log_reader()
43 local new_lines = {}; 46 local new_lines = {};
44 for line in server_log:lines() do 47 local last_line_time = time();
45 table.insert(new_lines, line); 48 while time() - last_line_time < server_log_wait_time do
49 sleep(0.05);
50 for line in server_log:lines() do
51 table.insert(new_lines, line);
52 last_line_time = time();
53 end
46 end 54 end
47 return new_lines; 55 return new_lines;
48 end 56 end
49 else 57 else
50 error("Unhandled command-line option: "..opt); 58 error("Unhandled command-line option: "..opt);

mercurial