Added catch-all for permission errors. #3202
Closed
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.
We don't want to report these to rollbar.
Note: I chose not to centralize reporting inside the
fileutils
package because there are dozens of functions in there that would have to be changed, and there are also other files that use os-level functions that may return these types of errors (such asos.OpenFile()
used by theprojectfile
package). I figured the best way to approach this was to have a catch-all at the bottom of the error funnel rather than having callers explicitly check for permission issues (similar to top-levelrationalize.ErrNoProject
handling) and crafting appropriate error messages.Further note: based on the generality of this solution, it's impossible to provide a truly helpful message (such as which file/folder had a permission issue) without implementing full-blown user-facing errors and types/structs. I figured that was out of scope for this small-ish task at hand.