From 9298bf66081a8f0f037dd84005275c15ce2d90f9 Mon Sep 17 00:00:00 2001 From: Siddharth S Singh Date: Fri, 23 Aug 2024 16:25:34 +0530 Subject: [PATCH] first commit (nonfunctional) --- deno.json | 1 + deno.lock | 6 +++++ scripts/db-export.ts | 53 ++++++++++++++++++++++++++++++-------------- 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/deno.json b/deno.json index 96c86b19..75a10262 100644 --- a/deno.json +++ b/deno.json @@ -48,6 +48,7 @@ "@std/streams": "jsr:@std/streams@^0.223.0", "comlink": "npm:comlink@^4.4.1", "comlink-async-generator": "npm:comlink-async-generator@^0.0.1", + "commander": "npm:commander@12.1.0", "deno-safe-fetch/load": "https://gitlab.com/soapbox-pub/deno-safe-fetch/-/raw/v1.0.0/load.ts", "deno.json": "./deno.json", "entities": "npm:entities@^4.5.0", diff --git a/deno.lock b/deno.lock index 68c03b53..0b4ce371 100644 --- a/deno.lock +++ b/deno.lock @@ -60,6 +60,7 @@ "npm:comlink-async-generator": "npm:comlink-async-generator@0.0.1", "npm:comlink-async-generator@^0.0.1": "npm:comlink-async-generator@0.0.1", "npm:comlink@^4.4.1": "npm:comlink@4.4.1", + "npm:commander@12.1.0": "npm:commander@12.1.0", "npm:entities@^4.5.0": "npm:entities@4.5.0", "npm:fast-stable-stringify@^1.0.0": "npm:fast-stable-stringify@1.0.0", "npm:formdata-helper@^0.3.0": "npm:formdata-helper@0.3.0", @@ -543,6 +544,10 @@ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dependencies": {} }, + "commander@12.1.0": { + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dependencies": {} + }, "cross-spawn@7.0.3": { "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { @@ -1904,6 +1909,7 @@ "npm:@scure/base@^1.1.6", "npm:comlink-async-generator@^0.0.1", "npm:comlink@^4.4.1", + "npm:commander@12.1.0", "npm:entities@^4.5.0", "npm:fast-stable-stringify@^1.0.0", "npm:formdata-helper@^0.3.0", diff --git a/scripts/db-export.ts b/scripts/db-export.ts index fbdac1b7..92166d96 100644 --- a/scripts/db-export.ts +++ b/scripts/db-export.ts @@ -1,24 +1,43 @@ import { Storages } from '@/storages.ts'; +import { Command } from 'commander'; const store = await Storages.db(); -console.warn('Exporting events...'); - -let count = 0; - -for await (const msg of store.req([{}])) { - if (msg[0] === 'EOSE') { - break; - } - if (msg[0] === 'EVENT') { - console.log(JSON.stringify(msg[2])); - count++; - } - if (msg[0] === 'CLOSED') { - console.error('Database closed unexpectedly'); - break; - } +interface ExportFilter { + authors: string[]; +} + +if (import.meta.main) { + const exporter = new Command() + .name('db:export') + .description('Export the specified set of events from the Ditto database.') + .version('0.1.0') + .showHelpAfterError(); + + exporter + // .option('') + .action(async (args: ExportFilter) => { + console.warn('Exporting events...'); + let count = 0; + + for await (const msg of store.req([{}])) { + if (msg[0] === 'EOSE') { + break; + } + if (msg[0] === 'EVENT') { + console.log(JSON.stringify(msg[2])); + count++; + } + if (msg[0] === 'CLOSED') { + console.error('Database closed unexpectedly'); + break; + } + } + + console.warn(`Exported ${count} events`); + }); + + exporter.parse(Deno.args, { from: 'user' }); } -console.warn(`Exported ${count} events`); Deno.exit();