1 | var proc = require('child_process')
|
2 | var u = require('./util')
|
3 |
|
4 | function hasRemote(name) {
|
5 | var remotes = proc.spawnSync('git', ['remote']).stdout.toString().split(/\n/)
|
6 | return !!~remotes.indexOf(name)
|
7 | }
|
8 |
|
9 | module.exports = function (argv) {
|
10 | if (argv._.length < 1 || argv._.length > 2) return require('./help')(argv)
|
11 |
|
12 | module.exports.createRepo(argv, argv._[0], argv._[1]);
|
13 | }
|
14 |
|
15 | module.exports.createRepo = function (config, remoteName, name, upstream) {
|
16 | if (!remoteName) throw 'Missing remote name'
|
17 | if (hasRemote(remoteName)) throw `Remote '${remoteName}' already exists`
|
18 | u.getSbot(config, function (err, sbot) {
|
19 | if (err) throw err
|
20 | require('ssb-git-repo').createRepo(sbot, {
|
21 | upstream: upstream,
|
22 | name: name
|
23 | }, function (err, repo) {
|
24 | if (err) throw err
|
25 | var url = 'ssb://' + repo.id
|
26 | console.log('Created repo:', url, name ? '(' + name + ')' : '')
|
27 | proc.spawnSync('git', ['remote', 'add', remoteName, url])
|
28 | console.log('Added remote:', remoteName)
|
29 | repo.close()
|
30 | sbot.close()
|
31 | })
|
32 | })
|
33 | }
|
34 |
|