language: TypeScript
845 Bytes / 32 lines / 25 loc
import { YakatakDb } from "./db.ts";
const chunks: Buffer[] = [];
for await (const chunk of process.stdin) {
chunks.push(chunk as Buffer);
}
const stdin = Buffer.concat(chunks).toString("utf-8");
async function main() {
const [, scriptPath, dbPath, ...extraArgs] = process.argv;
if (!dbPath || extraArgs.length > 0) {
console.error(`usage: node ${scriptPath} <db-path> < <urls>`);
process.exit(1);
}
const db = new YakatakDb(dbPath);
await db.init();
const cardIds: number[] = [];
for (const url of stdin.split("\n").filter(Boolean)) {
const cardId = await db.enqueueCard(url);
cardIds.push(cardId);
}
const deck = await db.createDeck();
const revision = await db.createRevision(deck.id, cardIds);
console.log(`Created deck ${deck.id} revision ${revision.id}`);
await db.close();
}
await main();