summaryrefslogtreecommitdiff
path: root/server/frob/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/frob/index.ts')
-rw-r--r--server/frob/index.ts25
1 files changed, 18 insertions, 7 deletions
diff --git a/server/frob/index.ts b/server/frob/index.ts
index fc3ac09..df06975 100644
--- a/server/frob/index.ts
+++ b/server/frob/index.ts
@@ -91,7 +91,7 @@ const flags = {
}
// flag parsing
- for (let opt of args) {
+ for (const opt of args.slice()) {
if (opt.startsWith("--")) {
switch (opt.slice(2)) {
case "dry":
@@ -101,18 +101,18 @@ const flags = {
case "dump":
case "sql":
flags.sql = true;
+ break;
case "clean":
case "clean-only":
- args.length = 0;
break;
default:
throw new SyntaxError(`unknown flag: ${opt}`);
}
args.shift();
+ } else {
+ break; // no more flags
}
-
- break; // no more flags
}
// item parsing
@@ -163,6 +163,10 @@ const flags = {
}
}
+ if (!flags.dry_run) {
+ char_writer.init();
+ }
+
// inventory:
for await (let char of char_parser.readDB()) {
let items_filtered = []; // this is not a Set because some items don't stack
@@ -196,7 +200,7 @@ const flags = {
await char_SQL.write(char);
}
- await char_writer.finalize(!!flags.dry_run);
+ await char_writer.finalize();
// char-server-bound account variables
if (flags.sql) {
@@ -212,6 +216,10 @@ const flags = {
}
}
+ if (!flags.dry_run) {
+ storage_writer.init();
+ }
+
// storage:
for await (let storage of storage_parser.readDB()) {
let items_filtered = []; // this is not a Set because some items don't stack
@@ -252,14 +260,17 @@ const flags = {
if (storage.storage_amount >= 1) {
await storage_writer.write(storage);
- await storage_SQL.write(storage);
+
+ if (flags.sql) {
+ await storage_SQL.write(storage);
+ }
} else {
console.log(`storage of account ${storage.account_id} is now empty: removing it from the storage db`);
stats.storage.wiped++;
}
}
- await storage_writer.finalize(!!flags.dry_run);
+ await storage_writer.finalize();
await sql.close();
console.info("\r \n=== all done ===");