tre-init
Version:
Initialize and test a new ssb network
56 lines (51 loc) • 1.49 kB
JavaScript
const fs = require('fs')
const {join, resolve} = require('path')
const pull = require('pull-stream')
const ssbClient = require('scuttlebot-release/node_modules/ssb-client')
const ssbKeys = require('scuttlebot-release/node_modules/ssb-keys')
const htime = require('human-time')
const conf = require('rc')('tre')
const path = conf.config
if (!path) {
console.error('.trerc not found')
process.exit(1)
}
const keys = ssbKeys.loadSync(join(path, '../.tre/secret'))
if (!module.parent) {
showList(conf, keys, err => {
if (err) {
console.error('Unable to list apps:', err.message)
process.exit(1)
}
})
}
function showList(conf, keys, cb) {
ssbClient(keys, Object.assign({},
conf,
{
manifest: {
revisions: {
messagesByType: 'source'
}
}
}
), (err, ssb) => {
if (err) return cb(err)
const webapps = []
pull(
ssb.revisions.messagesByType('webapp'),
pull.drain( e =>{
const revRoot = e.key.slice(-1)[0]
const content = e.value.value.content
console.error('', // don't use the format string argument
`${revRoot.substr(0,5)}:${e.value.key.substr(0,5)}`, content.name, content.repositoryBranch, content.commit, htime(new Date(e.value.value.timestamp)), 'by', e.value.value.author.substr(0, 5))
webapps.push(e.value) // kv
}, err => {
ssb.close()
cb(err, webapps)
})
)
})
}
module.exports = showList