It seems like one way to handle command line parameters could be to do named injection.
So you would annotate with a name something like --foo
And then you would just modify your bindings to inject that parameter but get the value from the command line arguments.
But that would be very simple command line handling. It wouldn't support complex command line apps.
Then there are systems like Airline:
... so it seems maybe a combination of the two would make a great way to build command line applications.
You would get dependency injection, and get command line argument handling.
How have other people handled this? I'd rather not re-invent the wheel here if there's a "best practice" way of doing this.