From 7a401afbf1739b623a5e8bc96091c096a8c446c8 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sun, 28 Oct 2018 13:45:57 +0100
Subject: [PATCH] [enh] Gather LevelDB data into a new `data/` dir

---
 app/lib/system/directory.ts | 6 ++++--
 server.ts                   | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/app/lib/system/directory.ts b/app/lib/system/directory.ts
index 0057a15bd..a0a33e365 100644
--- a/app/lib/system/directory.ts
+++ b/app/lib/system/directory.ts
@@ -118,7 +118,7 @@ export const MemFS = (initialTree:{ [folder:string]: { [file:string]: string }}
 export const Directory = {
 
   DATA_FILES: ['mindex.db', 'c_mindex.db', 'iindex.db', 'cindex.db', 'sindex.db', 'wallet.db', 'dividend.db', 'txs.db', 'peers.db'],
-  DATA_DIRS: ['level_dividend', 'level_bindex', 'level_blockchain', 'level_sindex', 'level_cindex', 'level_iindex', 'level_mindex', 'level_wallet'],
+  DATA_DIRS: ['data'],
 
   INSTANCE_NAME: getDomain(opts.mdb),
   INSTANCE_HOME: getHomePath(opts.mdb, opts.home),
@@ -145,7 +145,9 @@ export const Directory = {
       return LevelDBDriver.newMemoryInstance()
     }
     // Or file
-    const levelDBPath = path.join(home || Directory.INSTANCE_HOME, dbName)
+    const levelDbRootPath = path.join(home, 'data', 'leveldb')
+    await RealFS().fsMakeDirectory(levelDbRootPath)
+    const levelDBPath = path.join(levelDbRootPath, dbName)
     return LevelDBDriver.newFileInstance(levelDBPath)
   },
 
diff --git a/server.ts b/server.ts
index 4a057e297..60b4d3054 100644
--- a/server.ts
+++ b/server.ts
@@ -453,7 +453,8 @@ export class Server extends stream.Duplex implements HookableServer {
     await this.dal.cleanCaches();
     this.dal.wotb.resetWoT();
     const files = ['stats', 'cores', 'current', Directory.DUNITER_DB_NAME, Directory.DUNITER_DB_NAME + '.db', Directory.DUNITER_DB_NAME + '.log'];
-    const dirs  = ['loki', 'blocks', 'ud_history', 'branches', 'certs', 'txs', 'cores', 'sources', 'links', 'ms', 'identities', 'peers', 'indicators', 'leveldb'];
+    const dirs  = ['loki', 'blocks', 'ud_history', 'branches', 'certs', 'txs', 'cores', 'sources', 'links', 'ms', 'identities', 'peers', 'indicators', 'leveldb']
+      .concat(Directory.DATA_DIRS)
     return this.resetFiles(files, dirs);
   }
 
-- 
GitLab