|
1 | | -var fs = require('fs') |
2 | | -var Path = require('path') |
3 | | -var electron = require('electron') |
| 1 | +const electron = require('electron') |
| 2 | +const Client = require('ssb-client') |
| 3 | +const scuttleshell = require('scuttle-shell') |
4 | 4 |
|
5 | | -console.log('STARTING SBOT') |
| 5 | +// Get config options from depject |
| 6 | +const config = require('./config').create().config.sync.load() |
6 | 7 |
|
7 | | -var createSbot = require('scuttlebot') |
8 | | - .use(require('scuttlebot/plugins/master')) |
9 | | - .use(require('scuttlebot/plugins/gossip')) |
10 | | - .use(require('scuttlebot/plugins/replicate')) |
11 | | - .use(require('scuttlebot/plugins/invite')) |
12 | | - .use(require('scuttlebot/plugins/local')) |
13 | | - .use(require('scuttlebot/plugins/logging')) |
14 | | - .use(require('ssb-about')) |
15 | | - .use(require('ssb-backlinks')) |
16 | | - .use(require('ssb-blobs')) |
17 | | - .use(require('ssb-chess-db')) |
18 | | - .use(require('ssb-ebt')) |
19 | | - .use(require('ssb-friends')) |
20 | | - .use(require('ssb-meme')) |
21 | | - .use(require('ssb-private')) |
22 | | - .use(require('ssb-query')) |
23 | | - .use(require('ssb-search')) |
24 | | - .use(require('ssb-unread')) |
25 | | - .use(require('ssb-ws')) |
26 | | - // .use(require('ssb-mutual')) // this is has recursion problems atm |
| 8 | +// Check if scuttle-shell is already running |
| 9 | +// TODO - make this check for scuttle-shell specifically (and not just an sbot) |
27 | 10 |
|
28 | | -// pull config options out of depject |
29 | | -var config = require('./config').create().config.sync.load() |
30 | | - |
31 | | -var sbot = createSbot(config) |
32 | | -var manifest = sbot.getManifest() |
33 | | -fs.writeFileSync(Path.join(config.path, 'manifest.json'), JSON.stringify(manifest)) |
34 | | -electron.ipcRenderer.send('server-started') |
| 11 | +Client(config.keys, config, (err, server) => { |
| 12 | + // err implies no server currently running |
| 13 | + if (err) { |
| 14 | + console.warn('client connection failed:', err) |
| 15 | + console.log('> starting scuttle-shell') |
| 16 | + scuttleshell.start({}, (startErr) => { |
| 17 | + console.log('start done!', startErr) |
| 18 | + if (startErr) { |
| 19 | + console.error('failed to start scuttle-shell:', startErr) |
| 20 | + } else { |
| 21 | + electron.ipcRenderer.send('server-started') |
| 22 | + } |
| 23 | + }) |
| 24 | + } else { |
| 25 | + console.log('> scuttle-shell / sbot already running') |
| 26 | + server.close() // close this connection (app starts one of its own) |
| 27 | + electron.ipcRenderer.send('server-started') |
| 28 | + } |
| 29 | +}) |
0 commit comments