Commit 8ad8204e536a3463e29d6bb49d043c56cbababfd
implement 'ssb-dns dump'
ansuz committed on 10/31/2016, 7:29:19 PMParent: af8938fce74c725d9248c5cea181a9f733679646
Files changed
index.js | changed |
lib/index.js | changed |
lib/dump.js | added |
index.js | ||
---|---|---|
@@ -8,14 +8,17 @@ | ||
8 | 8 … | if (require.main !== module) { return module.exports = Lib; } |
9 | 9 … | |
10 | 10 … | var publishHelp = "\tssb-dns publish name type value (class)"; |
11 | 11 … | var serverHelp = "\tssb-dns server port host"; |
12 … | +var dumpHelp = "\tssb-dns dump"; | |
12 | 13 … | |
14 … | + | |
13 | 15 … | var CLI_Help = function () { |
14 | 16 … | [ |
15 | 17 … | "try one of:", |
16 | 18 … | serverHelp, |
17 | 19 … | publishHelp, |
20 … | + dumpHelp, | |
18 | 21 … | ].forEach(function (m) { |
19 | 22 … | console.log(m); |
20 | 23 … | }); |
21 | 24 … | }; |
@@ -25,8 +28,20 @@ | ||
25 | 28 … | switch (argv[0]) { |
26 | 29 … | case undefined: |
27 | 30 … | CLI_Help(); |
28 | 31 … | break; |
32 … | + case 'dump': | |
33 … | + (function () { | |
34 … | + var count = 0; | |
35 … | + Lib.dump.records(function (msg, record) { // each | |
36 … | + console.log(JSON.stringify(record, null, 2)); | |
37 … | + count++; | |
38 … | + }, function (sbot) { // done | |
39 … | + console.log("Found a total of %s valid ssb-dns records", count); | |
40 … | + sbot.close(); | |
41 … | + }); | |
42 … | + }()); | |
43 … | + break; | |
29 | 44 … | case 'server': |
30 | 45 … | (function () { |
31 | 46 … | var port = argv[1] || 53053; |
32 | 47 … | var host = argv[2] || '127.0.0.1'; |
lib/index.js | |||
---|---|---|---|
@@ -3,4 +3,5 @@ | |||
3 | 3 … | Lib.publish = require("./publish"); | |
4 | 4 … | ||
5 | 5 … | Lib.server = require("./server"); | |
6 | 6 … | ||
7 … | +Lib.dump = require("./dump"); |
lib/dump.js | ||
---|---|---|
@@ -1,0 +1,24 @@ | ||
1 … | +var Pull = require("pull-stream"); | |
2 … | +var Ansuz = require("ansuz"); | |
3 … | +var Dump = module.exports = {}; | |
4 … | + | |
5 … | +Dump.records = function (each, done) { | |
6 … | + var Client = require("ssb-client"); | |
7 … | + | |
8 … | + Client(function (err, sbot) { | |
9 … | + if (err) { return void done(err); } | |
10 … | + | |
11 … | + Pull(sbot.messagesByType({ | |
12 … | + type: 'ssb-dns', | |
13 … | + }), | |
14 … | + Pull.filter(function (msg) { | |
15 … | + return typeof(Ansuz.find(msg, ['value', 'content', 'record'])) === 'object'; | |
16 … | + }), | |
17 … | + Pull.map(function (msg) { | |
18 … | + each(msg, Ansuz.find(msg, ['value', 'content', 'record'])); | |
19 … | + }), | |
20 … | + Pull.onEnd(function () { | |
21 … | + done(sbot); | |
22 … | + })); | |
23 … | + }); | |
24 … | +}; |
Built with git-ssb-web