env.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package main
  2. import (
  3. "strings"
  4. )
  5. type GoOS string
  6. const (
  7. Windows = GoOS("windows")
  8. MacOS = GoOS("darwin")
  9. Linux = GoOS("linux")
  10. UnknownOS = GoOS("unknown")
  11. )
  12. type GoArch string
  13. const (
  14. X86 = GoArch("386")
  15. Amd64 = GoArch("amd64")
  16. Arm = GoArch("arm")
  17. Arm64 = GoArch("arm64")
  18. Mips64 = GoArch("mips64")
  19. UnknownArch = GoArch("unknown")
  20. )
  21. func parseOS(rawOS string) GoOS {
  22. osStr := strings.ToLower(rawOS)
  23. if osStr == "windows" || osStr == "win" {
  24. return Windows
  25. }
  26. if osStr == "darwin" || osStr == "mac" || osStr == "macos" || osStr == "osx" {
  27. return MacOS
  28. }
  29. if osStr == "linux" || osStr == "debian" || osStr == "ubuntu" || osStr == "redhat" || osStr == "centos" {
  30. return Linux
  31. }
  32. return UnknownOS
  33. }
  34. func parseArch(rawArch string) GoArch {
  35. archStr := strings.ToLower(rawArch)
  36. if archStr == "x86" || archStr == "386" || archStr == "i386" {
  37. return X86
  38. }
  39. if archStr == "amd64" || archStr == "x86-64" || archStr == "x64" {
  40. return Amd64
  41. }
  42. if archStr == "arm" {
  43. return Arm
  44. }
  45. if archStr == "arm64" {
  46. return Arm64
  47. }
  48. if archStr == "mips" || archStr == "mips64" {
  49. return Mips64
  50. }
  51. return UnknownArch
  52. }
  53. func getSuffix(os GoOS, arch GoArch) string {
  54. suffix := "-custom"
  55. switch os {
  56. case Windows:
  57. switch arch {
  58. case X86:
  59. suffix = "-windows-32"
  60. case Amd64:
  61. suffix = "-windows-64"
  62. }
  63. case MacOS:
  64. suffix = "-macos"
  65. case Linux:
  66. switch arch {
  67. case X86:
  68. suffix = "-linux-32"
  69. case Amd64:
  70. suffix = "-linux-64"
  71. case Arm:
  72. suffix = "-linux-arm"
  73. case Arm64:
  74. suffix = "-linux-arm64"
  75. case Mips64:
  76. suffix = "-linux-mips64"
  77. }
  78. }
  79. return suffix
  80. }