From 96fbcc97b989635275ebd44675415710546fe80b Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 21 Dec 2022 15:59:22 +0100 Subject: [PATCH] Add clear script to empty the database --- package.json | 2 ++ scripts/clear.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 scripts/clear.js diff --git a/package.json b/package.json index e2782d86a..754ef9e22 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "get-folder-size": "^2.0.1", "netflux-websocket": "^0.1.20", "nthen": "0.1.8", + "prompt-confirm": "^2.0.4", "pull-stream": "^3.6.1", "saferphore": "0.0.1", "sortify": "^1.0.4", @@ -51,6 +52,7 @@ "test-rpc": "cd scripts/tests && node test-rpc", "evict-inactive": "node scripts/evict-inactive.js", "build": "node scripts/build.js", + "clear": "node scripts/clear.js", "install": "node scripts/install.js" } } diff --git a/scripts/clear.js b/scripts/clear.js new file mode 100644 index 000000000..bf5db4237 --- /dev/null +++ b/scripts/clear.js @@ -0,0 +1,30 @@ +var prompt = require('prompt-confirm'); +const p = new prompt('Are you sure? This will permanently delete all existing data on your instance.'); + +const nThen = require("nthen"); +const Fs = require("fs"); +const Path = require("path"); + +var config = require("../lib/load-config"); +var Hash = require('../www/common/common-hash'); +var Env = require("../lib/env").create(config); +Env.Log = { error: console.log }; + +var keyOrDefaultString = function (key, def) { + return Path.resolve(typeof(config[key]) === 'string'? config[key]: def); +}; +var paths = Env.paths; +p.ask(function (answer) { + if (!answer) { + console.log('Abort'); + return; + } + console.log('Deleting all data...'); + var n = nThen; + Object.values(paths).forEach(function (path) { + console.log(`Deleting ${path}`); + fs.rmSync(path, { recursive: true, force: true }); + console.log('Deleted'); + }); + console.log('Success'); +});