-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathload.js
54 lines (46 loc) · 1.08 KB
/
load.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var request = require('request');
var fs = require('fs');
var pegjs = require('pegjs');
//load
module.exports = function (single, all) {
var i, n;
var flag = 0;
var flagcb = function () {
if (flag < 1) {
all();
}
};
var makeParU = function (url, name) {
name = name || url.split("/")[3]
flag += 1;
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
var scheem = pegjs.buildParser(body);
var par = function (str, start) {
try {
return scheem.parse(str, start);
} catch (e) {
return undefined;
}
};
//console.log(name, "loaded");
single(par, name);
} else {
console.log("Error in fetching", url, error);
}
flag -= 1;
flagcb();
});
};
var urls = fs.readFileSync("repos.txt", "utf8").split("\n");
var u;
n = urls.length;
for (i = 0; i < n; i += 1){
u = urls[i].trim();
if (!u || u[0] === "!") {
continue;
}
console.log(u)
makeParU(u);
}
};