getproviders: Don't log if EvalSymlinks changes nothing

Previously this codepath was generating a confusing message in the absense
of any symlinks, because filepath.EvalSymlinks returns a successful result
if the target isn't a symlink.

Now we'll emit the log line only if filepath.EvalSymlinks returns a
result that's different in a way that isn't purely syntactic (which
filepath.Clean would "fix").

The new message is a little more generic because technically we've not
actually ensured that a difference here was caused by a symlink and so
we shouldn't over-promise and generate something potentially misleading.
This commit is contained in:
Martin Atkins 2020-10-20 16:49:38 -07:00
parent f211cf0c73
commit 1fe314b70b
1 changed files with 3 additions and 1 deletions

View File

@ -30,7 +30,9 @@ func SearchLocalDirectory(baseDir string) (map[addrs.Provider]PackageMetaList, e
// symlink to help Terraform find them anyway. // symlink to help Terraform find them anyway.
originalBaseDir := baseDir originalBaseDir := baseDir
if finalDir, err := filepath.EvalSymlinks(baseDir); err == nil { if finalDir, err := filepath.EvalSymlinks(baseDir); err == nil {
log.Printf("[TRACE] getproviders.SearchLocalDirectory: %s is a symlink to %s", baseDir, finalDir) if finalDir != filepath.Clean(baseDir) {
log.Printf("[TRACE] getproviders.SearchLocalDirectory: using %s instead of %s", finalDir, baseDir)
}
baseDir = finalDir baseDir = finalDir
} else { } else {
// We'll eat this particular error because if we're somehow able to // We'll eat this particular error because if we're somehow able to