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.
This simplifies the argument parsing a lot - we can almost parse the needed structure just with that, including all the manual default handling.
The only thing that does change is the handling of upstreams - rather than populating two fields in the Arg struct, it now contains a
Vec<Remote>
.We can use clap to ensure there's at least one element (same for local), but comparison of individual args and further validation (max 2, not two of the same type) is now left to
josh-proxy.rs
.For this, a
make_upstream
is introduced, turning that list of enums with URLs into a JoshProxyUpstream.Error handling in run_proxy isn't awfully verbose, just exit nonzero, so I opted to log that specific error with an eprintln!, but happy to also add it for all errors (in main()).
This is in preparation for
#1288.