Skip to content
Snippets Groups Projects
Commit 8f607f2d authored by Cédric Moreau's avatar Cédric Moreau
Browse files

[enh] `reset` modularized

parent fb73ef6b
No related branches found
No related tags found
No related merge requests found
......@@ -269,44 +269,6 @@ module.exports = () => {
})
})));
program
.command('reset [config|data|peers|tx|stats|all]')
.description('Reset configuration, data, peers, transactions or everything in the database')
.action(subCommand((type) => {
let init = ['data', 'all'].indexOf(type) !== -1 ? getServer.bind(getServer, program) : connect;
return init(function (server) {
if (!~['config', 'data', 'peers', 'stats', 'all'].indexOf(type)) {
throw constants.ERRORS.CLI_CALLERR_RESET;
}
return co(function*() {
try {
if (type == 'data') {
yield server.resetData();
logger.warn('Data successfully reseted.');
}
if (type == 'peers') {
yield server.resetPeers();
logger.warn('Peers successfully reseted.');
}
if (type == 'stats') {
yield server.resetStats();
logger.warn('Stats successfully reseted.');
}
if (type == 'config') {
yield server.resetConf();
logger.warn('Configuration successfully reseted.');
}
if (type == 'all') {
yield server.resetAll();
logger.warn('Data & Configuration successfully reseted.');
}
} catch (e) {
logger.error(e);
}
});
}, type != 'peers')(type);
}));
program
.on('*', function (cmd) {
console.log("Unknown command '%s'. Try --help for a listing of commands & options.", cmd);
......@@ -331,42 +293,6 @@ module.exports = () => {
};
}
function connect(callback, useDefaultConf) {
return function () {
const cbArgs = arguments;
const dbName = program.mdb || "duniter_default";
const dbHome = program.home;
const home = directory.getHome(dbName, dbHome);
const theServer = duniter(home, program.memory === true, commandLineConf(program));
// If ever the process gets interrupted
let isSaving = false;
closeCommand = () => co(function*() {
if (!isSaving) {
isSaving = true;
// Save DB
return theServer.disconnect();
}
});
// Initialize server (db connection, ...)
return theServer.plugFileSystem(useDefaultConf)
.then(() => theServer.loadConf())
.then(function () {
try {
cbArgs.length--;
cbArgs[cbArgs.length++] = theServer;
cbArgs[cbArgs.length++] = theServer.conf;
return callback.apply(this, cbArgs);
} catch(e) {
theServer.disconnect();
throw e;
}
});
};
}
function service(callback, nologs) {
return function () {
......
"use strict";
const co = require('co');
const constants = require('../lib/constants');
const wizard = require('../lib/wizard');
const logger = require('../lib/logger')('wizard');
module.exports = {
duniter: {
cli: [{
name: 'reset [config|data|peers|tx|stats|all]',
desc: 'Reset configuration, data, peers, transactions or everything in the database',
onConfiguredExecute: (server, conf, program, params, wizardTasks) => co(function*() {
const type = params[0];
if (type === 'peers') {
// Needs the DAL plugged
yield server.initDAL();
}
switch (type) {
case 'data':
yield server.resetData();
logger.warn('Data successfully reseted.');
break;
case 'peers':
yield server.resetPeers();
logger.warn('Peers successfully reseted.');
break;
case 'stats':
yield server.resetStats();
logger.warn('Stats successfully reseted.');
break;
case 'config':
yield server.resetConf();
logger.warn('Configuration successfully reseted.');
break;
case 'all':
yield server.resetAll();
logger.warn('Data & Configuration successfully reseted.');
break;
default:
throw constants.ERRORS.CLI_CALLERR_RESET;
}
})
}]
}
};
......@@ -16,6 +16,7 @@ const configDependency = require('./app/modules/config');
const wizardDependency = require('./app/modules/wizard');
const genDependency = require('./app/modules/gen');
const syncDependency = require('./app/modules/synchronization');
const resetDependency = require('./app/modules/reset');
const MINIMAL_DEPENDENCIES = [
{ name: 'duniter-config', required: configDependency }
......@@ -26,6 +27,7 @@ const DEFAULT_DEPENDENCIES = [
{ name: 'duniter-sync', required: syncDependency },
{ name: 'duniter-wizard', required: wizardDependency },
{ name: 'duniter-gen', required: genDependency },
{ name: 'duniter-reset', required: resetDependency },
{ name: 'duniter-keypair', required: dkeypairDependency }
];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment