version.go 784 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "os/exec"
  6. "strings"
  7. )
  8. // 1.0.0-dev
  9. const (
  10. VERSION_MAJ = 1
  11. VERSION_MIN = 0
  12. VERSION_PAT = 0
  13. VERSION_TAG = "dev"
  14. )
  15. func GitVersion() string {
  16. var (
  17. cmd *exec.Cmd
  18. err error
  19. stdout []byte
  20. )
  21. cmd = exec.Command("git", "describe",
  22. "--abbrev=8",
  23. "--long",
  24. "--tags",
  25. "--dirty",
  26. "--always",
  27. "--match",
  28. "v[0-9]*")
  29. stdout, err = cmd.Output()
  30. if err != nil {
  31. log.Println("Err (GitVersion):", err)
  32. return ""
  33. }
  34. return strings.TrimSpace(string(stdout))
  35. }
  36. func Version() string {
  37. var hash string = GitVersion()
  38. if hash != "" {
  39. return fmt.Sprintf("%d.%d.%d-%s#%s", VERSION_MAJ, VERSION_MIN, VERSION_PAT, VERSION_TAG, hash)
  40. }
  41. return fmt.Sprintf("%d.%d.%d-%s", VERSION_MAJ, VERSION_MIN, VERSION_PAT, VERSION_TAG)
  42. }