Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
(Starting with) fixing beef cli option handling. Fixes #2174
I still consider this WIP because I am not very well acquainted with ruby. Let me know if you find any issues or things to improve.
Category
Core Functionality
Feature/Issue Description
Q: Please give a brief summary of your feature/fix
A: Beef options were not part of the
--help
before and not clearly communicated.Q: Give a technical rundown of what you have changed (if applicable)
A: The problem seems to pertain to Sinatra. Since some extensions use Sinatra, it is required from
loader.rb
(by requiring the bundle defaults). From then on, Sinatra basically hogs the command line parsing, parsing--help
and then exiting.After discussion I decided to simply shadow the Sinatra CLI handling. The changes consume the CLI args, Sinatra is left with nothing.
Result
With these changes, we would at least see all the command line options being printed when running
./beef --help
, i.e.Usage: beef [options] -x, --reset Reset the database -v, --verbose Display debug information -a, --ascii-art Prints BeEF ascii art -c, --config FILE Specify configuration file to load (instead of ./config.yaml) -p, --port PORT Change the default BeEF listening port -w, --wsport WS_PORT Change the default BeEF WebSocket listening port --update-disable Skips update --update-auto Automatic update with no prompt -h, --help Prints this help