Addressed feedback:
- use relative link in README
- refactor argument parsing to be easier to extend
- drops 'too many arguments' error message
- Use ?; consistently
- avoid temporary copy when building arguments for
Command::new - replace
wgetwithcurl - also use
--depth=1when cloning AFLplusplus - use
git add+git commitconsistently instead ofgit commit -a - don't require
-Znext-lockfile-bumpwithcargo
Additionally:
- fix
git_cloneerror message did not useformat!macro - add .gitignore to ignore cargo target/
All in one commit because I think this is easy enough to review, and not "mission-critical code" anyway. Lmk if you would prefer it differently.
This is currently running, but lgtm.
Btw, I'm considering improving the UX/DX: We could pipe the current output to a file and show a progress bar on stdout (without adding a dependency). The progress bar would indicate how many fuzz targets afl-cmin has already processed, at which sanitizer step we are, and maybe there's more useful progress information we can get by looking at the current output. This would help with knowing how long it might still take. I also always want to know how long it took to know what to expect next time, but currently, I have to remember to run the script with time or look at the commit timestamps to get an idea.
With #265, the script will take even longer; making improvements to its long-running nature more important.