feat(migrate): CLI dispatch + verify

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
root
2026-06-04 22:21:48 +10:00
parent 718f92676d
commit 332a0158a0
3 changed files with 50 additions and 0 deletions

25
migrate/cli.js Normal file
View File

@@ -0,0 +1,25 @@
import 'dotenv/config';
import { ensureSpace } from './spaces.js';
import { importPlans } from './sources/plans.js';
import { importVoid1 } from './sources/void1.js';
import { importKarakeep } from './sources/karakeep.js';
import { importBookstack } from './sources/bookstack.js';
import { verify } from './verify.js';
const [, , cmd, ...rest] = process.argv;
const dryRun = rest.includes('--dry-run');
const run = {
async plans() { return importPlans({ dir: process.env.PLANS_DIR || '/root/.claude/plans', spaceId: await ensureSpace('plans', 'Plans'), dryRun }); },
async void1() { return importVoid1({ sqlitePath: process.env.VOID1_DB || '/tmp/void1.db', spaceId: await ensureSpace('void1', 'Void 1'), dryRun }); },
async karakeep() { return importKarakeep({ spaceId: await ensureSpace('bookmarks', 'Bookmarks'), dryRun }); },
async bookstack() { return importBookstack({ spaceId: await ensureSpace('wiki', 'Wiki'), dryRun }); },
async verify() { return verify(); }
};
if (!run[cmd]) {
console.error(`usage: node migrate/cli.js <plans|void1|karakeep|bookstack|verify> [--dry-run]`);
process.exit(1);
}
run[cmd]().then(r => { console.log(JSON.stringify(r, null, 2)); process.exit(0); })
.catch(e => { console.error('migrate failed:', e.message); process.exit(1); });