mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-05-23 15:26:36 +00:00
40 lines
1.0 KiB
JavaScript
40 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
var async = require('asyncawait/async');
|
|
var await = require('asyncawait/await');
|
|
var Promise = require('bluebird');
|
|
var ipfsdCtl = require('ipfsd-ctl');
|
|
|
|
const getUserHome = () => {
|
|
return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
|
|
};
|
|
|
|
const ipfsPath = path.resolve(getUserHome() + '/.ipfs');
|
|
|
|
if(!fs.existsSync(ipfsPath))
|
|
fs.mkdirSync(ipfsPath);
|
|
|
|
const startIpfs = async (() => {
|
|
let ipfs, nodeInfo;
|
|
|
|
try {
|
|
const ipfsNode = Promise.promisify(ipfsdCtl.local.bind(ipfsPath))
|
|
const ipfsd = await (ipfsNode());
|
|
const start = Promise.promisify(ipfsd.startDaemon.bind(ipfsd));
|
|
ipfs = await (start());
|
|
const getId = Promise.promisify(ipfs.id);
|
|
nodeInfo = await (getId())
|
|
} catch(e) {
|
|
console.log("Error initializing ipfs daemon:", e);
|
|
return null;
|
|
}
|
|
|
|
return { daemon: ipfs, nodeInfo: nodeInfo };
|
|
});
|
|
|
|
module.exports = async(() => {
|
|
return await(startIpfs());
|
|
});
|