print.go 789 B

123456789101112131415161718192021222324252627282930313233
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. package version
  4. import (
  5. "fmt"
  6. "runtime"
  7. "strings"
  8. "sync"
  9. )
  10. var stringLazy = sync.OnceValue(func() string {
  11. var ret strings.Builder
  12. ret.WriteString(Short())
  13. ret.WriteByte('\n')
  14. if IsUnstableBuild() {
  15. fmt.Fprintf(&ret, " track: unstable (dev); frequent updates and bugs are likely\n")
  16. }
  17. if gitCommit() != "" {
  18. fmt.Fprintf(&ret, " tailscale commit: %s%s\n", gitCommit(), dirtyString())
  19. }
  20. fmt.Fprintf(&ret, " long version: %s\n", Long())
  21. if extraGitCommitStamp != "" {
  22. fmt.Fprintf(&ret, " other commit: %s\n", extraGitCommitStamp)
  23. }
  24. fmt.Fprintf(&ret, " go version: %s\n", runtime.Version())
  25. return strings.TrimSpace(ret.String())
  26. })
  27. func String() string {
  28. return stringLazy()
  29. }