httpcaddyfile: Refactor to allow named matchers in route
blocks
#3632
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.
While updating caddyserver/website#71 I figured I'd take a look at what it would take to fix
route
to allow named matchers within it, turned out to be pretty simple.There's was plenty of duplicate code in the logic of
parseRoute
compared toparseSegmentAsSubroute
, but we didn't want the logic frombuildSubroute
forroute
because it does things we don't need.It was pretty simple to extract out everything except the call to
buildSubroute
into an internal function so thatroute
andhandle
can share almost entirely the same code paths.(I recommend reviewing with "hide whitespace changes" turned on, makes the diff clearer)