X-Git-Url: https://git.sesse.net/?p=remoteglot;a=blobdiff_plain;f=server%2Fserve-analysis.js;h=ca9047f3df1767bf188ebbdd529b5dd8eb2ba997;hp=0490e96f604a2639102aa62cc572320208b23fe7;hb=661cf41244a9be2e618b2a5fe2cf3c03a7e79009;hpb=83aa0538ddb9037d37295f7e6e68348773661d7a diff --git a/server/serve-analysis.js b/server/serve-analysis.js index 0490e96..ca9047f 100644 --- a/server/serve-analysis.js +++ b/server/serve-analysis.js @@ -40,6 +40,13 @@ if (process.argv.length >= 6) { port = parseInt(process.argv[5]); } +// gRPC backends. +var grpc_backends = ["localhost:50051", "localhost:50052"]; +if (process.argv.length >= 7) { + grpc_backends = process.argv[6].split(","); +} +hash_lookup.init(grpc_backends); + // If set to 1, we are already processing a JSON update and should not // start a new one. If set to 2, we are _also_ having one in the queue. var json_lock = 0; @@ -86,8 +93,18 @@ var replace_json = function(new_json_contents, mtime) { } } + var parsed = JSON.parse(new_json_contents); + + if (parsed['internal']) { + if (parsed['internal']['grpc_backends'] && + hash_lookup.need_reinit(parsed['internal']['grpc_backends'])) { + hash_lookup.init(parsed['internal']['grpc_backends']); + } + delete parsed['internal']; + } + var new_json = { - parsed: JSON.parse(new_json_contents), + parsed: parsed, plain: new_json_contents, last_modified: mtime }; @@ -138,7 +155,7 @@ var reread_file = function(event, filename) { if (json_lock == 1) { // Already processing; wait a bit. json_lock = 2; - setTimeout(function() { json_lock = 1; reread_file(event, filename); }, 100); + setTimeout(function() { if (json_lock == 2) json_lock = 1; reread_file(event, filename); }, 100); return; } json_lock = 1;