print.go 758 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. "tailscale.com/types/lazy"
  9. )
  10. var stringLazy = lazy.SyncFunc(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. if extraGitCommitStamp != "" {
  21. fmt.Fprintf(&ret, " other commit: %s\n", extraGitCommitStamp)
  22. }
  23. fmt.Fprintf(&ret, " go version: %s\n", runtime.Version())
  24. return strings.TrimSpace(ret.String())
  25. })
  26. func String() string {
  27. return stringLazy()
  28. }