From cab6cdbd6a9a0ad8f6f0834a059ebc8045a5fec8 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Thu, 6 Apr 2017 13:24:39 +0200
Subject: [PATCH] [enh] #941 Added `preventIfRunning` field for commands of
 modules

---
 app/modules/reapply.js | 1 +
 app/modules/reset.js   | 1 +
 app/modules/revert.js  | 2 ++
 index.js               | 6 ++++++
 package.json           | 4 ++--
 5 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/app/modules/reapply.js b/app/modules/reapply.js
index 1adb83f31..f6640a8e1 100644
--- a/app/modules/reapply.js
+++ b/app/modules/reapply.js
@@ -7,6 +7,7 @@ module.exports = {
     cli: [{
       name: 'reapply-to [number]',
       desc: 'Reapply reverted blocks until block #[number] is reached. EXPERIMENTAL',
+      preventIfRunning: true,
       onDatabaseExecute: (server, conf, program, params) => co(function*() {
         const number = params[0];
         const logger = server.logger;
diff --git a/app/modules/reset.js b/app/modules/reset.js
index fa7396d18..5786f37a3 100644
--- a/app/modules/reset.js
+++ b/app/modules/reset.js
@@ -11,6 +11,7 @@ module.exports = {
     cli: [{
       name: 'reset [config|data|peers|tx|stats|all]',
       desc: 'Reset configuration, data, peers, transactions or everything in the database',
+      preventIfRunning: true,
 
       onConfiguredExecute: (server, conf, program, params, wizardTasks) => co(function*() {
         const type = params[0];
diff --git a/app/modules/revert.js b/app/modules/revert.js
index 1fb00afd6..eda5642f9 100644
--- a/app/modules/revert.js
+++ b/app/modules/revert.js
@@ -7,6 +7,8 @@ module.exports = {
     cli: [{
       name: 'revert [count]',
       desc: 'Revert (undo + remove) the top [count] blocks from the blockchain. EXPERIMENTAL',
+      preventIfRunning: true,
+
       onDatabaseExecute: (server, conf, program, params) => co(function*() {
         const count = params[0];
         const logger = server.logger;
diff --git a/index.js b/index.js
index 5837f1bc9..9e57eef40 100644
--- a/index.js
+++ b/index.js
@@ -222,6 +222,12 @@ function Stack(dependencies) {
         logger.error("Configuration could not be saved: " + e);
         throw Error(e);
       }
+
+      const daemon = server.getDaemon()
+      if (command.preventIfRunning && daemon.status()) {
+        throw 'Your node is currently running. Please stop it and relaunch your command.'
+      }
+
       // First possible class of commands: post-config
       if (command.onConfiguredExecute) {
         return yield command.onConfiguredExecute(server, conf, program, params, wizardTasks, that);
diff --git a/package.json b/package.json
index 91278d03b..713917f2b 100644
--- a/package.json
+++ b/package.json
@@ -69,9 +69,9 @@
   "devDependencies": {
     "coveralls": "2.11.4",
     "duniter-bma": "^1.0.7",
-    "duniter-crawler": "^1.0.7",
+    "duniter-crawler": "^1.0.8",
     "duniter-keypair": "^1.0.1",
-    "duniter-prover": "^1.0.3",
+    "duniter-prover": "^1.0.4",
     "eslint": "3.13.1",
     "eslint-plugin-mocha": "4.8.0",
     "istanbul": "0.4.0",
-- 
GitLab