| // Copyright 2022 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package cache |
| |
| import ( |
| "fmt" |
| "os" |
| "sort" |
| ) |
| |
| // This file contains helpers that can be used to instrument code while |
| // debugging. |
| |
| // debugEnabled toggles the helpers below. |
| const debugEnabled = false |
| |
| // If debugEnabled is true, debugf formats its arguments and prints to stderr. |
| // If debugEnabled is false, it is a no-op. |
| func debugf(format string, args ...interface{}) { |
| if !debugEnabled { |
| return |
| } |
| if false { |
| fmt.Sprintf(format, args...) // encourage vet to validate format strings |
| } |
| fmt.Fprintf(os.Stderr, ">>> "+format+"\n", args...) |
| } |
| |
| // If debugEnabled is true, dumpWorkspace prints a summary of workspace |
| // packages to stderr. If debugEnabled is false, it is a no-op. |
| func (s *snapshot) dumpWorkspace(context string) { |
| if !debugEnabled { |
| return |
| } |
| |
| debugf("workspace (after %s):", context) |
| var ids []PackageID |
| for id := range s.workspacePackages { |
| ids = append(ids, id) |
| } |
| |
| sort.Slice(ids, func(i, j int) bool { |
| return ids[i] < ids[j] |
| }) |
| |
| for _, id := range ids { |
| pkgPath := s.workspacePackages[id] |
| m, ok := s.meta.metadata[id] |
| debugf(" %s:%s (metadata: %t; valid: %t)", id, pkgPath, ok, m.Valid) |
| } |
| } |