Files
cap/solver-cli/index.js
T

51 lines
1.3 KiB
JavaScript

#!/usr/bin/env bun
import solver from "@cap.js/solver";
import kleur from "kleur";
const args = process.argv.slice(2);
(async () => {
if (args.length === 0) {
console.log(`\n${kleur.cyan("@cap.js/cli")} ${kleur.gray(
"cli solver for cap challenges"
)}
Usage:
${kleur.dim("$")} bunx ${kleur.bold("@cap.js/cli")} <challenges>
Options:
<challenges> The challenges to solve in
format \`salt:target\``);
return;
}
const challenges = args.map((arg) => {
const [salt, target] = arg.split(":");
if (!salt || !target) {
console.error(
`${kleur.red("Error:")} ${kleur.yellow(arg)} is not a valid challenge`
);
process.exit(1);
}
return [salt, target];
});
console.log(`\n${kleur.cyan("@cap.js/cli")} ${kleur.dim(`${challenges.length} challenges`)}\n\n\n`);
const solutions = await solver(challenges, {
onProgress: (status) => {
process.stdout.moveCursor(0, -2);
process.stdout.clearScreenDown();
console.log(
`${status.result.salt}:${status.result.target}:${status.result.nonce}`
);
console.log(kleur.dim("\nSolving challenges… " + status.progress + "%"));
},
});
process.stdout.moveCursor(0, -2);
process.stdout.clearScreenDown();
})();