import { spawnSync } from "node:child_process";
import fs from "node:fs";

const result = spawnSync("gh issue list -s all -L 5000 --json number,title", { shell: true });
if (result.error) {
  console.error("Error executing command:", result.error);
  process.exit(1);
}
const items = JSON.parse(result.stdout.toString()) as { number: number; title: string }[];

const logFile = fs.openSync("issues.txt", "a");

for (const item of items.reverse()) {
    console.log("Migrating ", item.number);

    const issueContent = spawnSync(`gh issue transfer ${item.number} TriliumNext/trilium`, { shell: true });
    if (issueContent.error) {
        console.error(`Error transferring issue #${item.number}:`, issueContent.error);
        fs.writeSync(logFile, `Error transferring issue #${item.number}: ${issueContent.error}\n`);
        process.exit(1);
    }

    const link = issueContent.stdout.toString().trim();
    fs.writeSync(logFile, `Migrated issue #${item.number} - ${item.title} to ${link}\n`);
}

fs.closeSync(logFile);