Check for go package directory existence before accessing #274
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.
Fixes a crash seen when
go list
tells licensed that a package has a directory that doesn't exist. This was seen when referencing a repo with multiple module while also usingGOFLAGS="-mod=vendor"
.In this case
go list
was assuming that all dependent packages used would live in the vendor folder, which is not true for other modules defined in the repo. In go < 1.14 this causesgo list
to fail entirely and in go 1.14 the reference to a directory that doesn't exist causes licensed to crash by trying toDir.chdir
to the non-existent repo. The fix here checks for the existence of the repo before trying to change to its directory./cc @vroldanbet @macripps