Confidence: medium · Effort: medium (1-3 d)
Problem
main.c is a 30-line stub that launches the GUI. The engine in bruteforce.cu (and the parallel bruteforce.c) is self-contained and could be driven from a CLI given --input file.bin --key-range start:end --threads N --json-out results.json. The repo already has tools/dmrcrack_worker.py which hints at this intent.
Files: src/main.c, new src/cli.c, src/gui.c (currently the only entry point)
Suggested fix
- New
src/cli.c driver that parses args, calls payload_io_load, then bruteforce_engine_init/bruteforce_start/polls bruteforce_get_snapshot until done.
- Gate via CMake target (
dmrcrack_cli) or -DNO_GUI define.
- JSON output mode for scriptability.
This pairs with the resync-bruteforce.c, POSIX HAL, and CMake issues — together they enable headless Linux builds.
Why it matters
Unlocks scripting, batch runs, server deployment, integration into pipelines, and is a prerequisite for running real tests on Linux CI runners.
Confidence: medium · Effort: medium (1-3 d)
Problem
main.cis a 30-line stub that launches the GUI. The engine inbruteforce.cu(and the parallelbruteforce.c) is self-contained and could be driven from a CLI given--input file.bin --key-range start:end --threads N --json-out results.json. The repo already hastools/dmrcrack_worker.pywhich hints at this intent.Files:
src/main.c, newsrc/cli.c,src/gui.c(currently the only entry point)Suggested fix
src/cli.cdriver that parses args, callspayload_io_load, thenbruteforce_engine_init/bruteforce_start/pollsbruteforce_get_snapshotuntil done.dmrcrack_cli) or-DNO_GUIdefine.This pairs with the resync-
bruteforce.c, POSIX HAL, and CMake issues — together they enable headless Linux builds.Why it matters
Unlocks scripting, batch runs, server deployment, integration into pipelines, and is a prerequisite for running real tests on Linux CI runners.