UNPKG

1.33 kBJavaScriptView Raw
1var pull = require('pull-stream')
2var paramap = require('pull-paramap')
3var multicb = require('multicb')
4var u = require('./util')
5var getAbout = require('ssb-avatar')
6
7function indentFork(msg, baseMsg) {
8 msg.indent = baseMsg.indent + ' '
9}
10
11module.exports = function repoForks(argv) {
12 if (argv._.length > 1) return require('./help')(argv)
13
14 process.stderr.write('Loading forks...\r')
15 var id = u.getRemote(argv._[0])
16 if (!id) throw 'unable to find git-ssb repo'
17
18 u.getSbot(argv, function (err, sbot) {
19 if (err) throw err
20 sbot.whoami(function (err, feed) {
21 if (err) throw err
22 sbot.get(id, function (err, msg) {
23 if (err) throw err
24 pull(
25 u.getForks(sbot, {key: id, value: msg, indent: ''}, indentFork),
26 paramap(function (msg, cb) {
27 var done = multicb({pluck: 1, spread: true})
28 getAbout(sbot, feed.id, msg.value.author, done())
29 getAbout(sbot, feed.id, msg.key, done())
30 done(function (err, authorAbout, repoAbout) {
31 if (err) return cb(err)
32 cb(null, msg.indent + '- ' +
33 'ssb://' + msg.key + ' ' +
34 '@' + authorAbout.name + ' ' +
35 (repoAbout.name||''))
36 })
37 }, 8),
38 pull.log(sbot.close)
39 )
40 })
41 })
42 })
43}