| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package main
- import (
- "strings"
- )
- type GoOS string
- const (
- Windows = GoOS("windows")
- MacOS = GoOS("darwin")
- Linux = GoOS("linux")
- FreeBSD = GoOS("freebsd")
- UnknownOS = GoOS("unknown")
- )
- type GoArch string
- const (
- X86 = GoArch("386")
- Amd64 = GoArch("amd64")
- Arm = GoArch("arm")
- Arm64 = GoArch("arm64")
- Mips64 = GoArch("mips64")
- UnknownArch = GoArch("unknown")
- )
- func parseOS(rawOS string) GoOS {
- osStr := strings.ToLower(rawOS)
- if osStr == "windows" || osStr == "win" {
- return Windows
- }
- if osStr == "darwin" || osStr == "mac" || osStr == "macos" || osStr == "osx" {
- return MacOS
- }
- if osStr == "linux" || osStr == "debian" || osStr == "ubuntu" || osStr == "redhat" || osStr == "centos" {
- return Linux
- }
- if osStr == "freebsd" {
- return FreeBSD
- }
- return UnknownOS
- }
- func parseArch(rawArch string) GoArch {
- archStr := strings.ToLower(rawArch)
- if archStr == "x86" || archStr == "386" || archStr == "i386" {
- return X86
- }
- if archStr == "amd64" || archStr == "x86-64" || archStr == "x64" {
- return Amd64
- }
- if archStr == "arm" {
- return Arm
- }
- if archStr == "arm64" {
- return Arm64
- }
- if archStr == "mips" || archStr == "mips64" {
- return Mips64
- }
- return UnknownArch
- }
- func getSuffix(os GoOS, arch GoArch) string {
- suffix := "-custom"
- switch os {
- case Windows:
- switch arch {
- case X86:
- suffix = "-windows-32"
- case Amd64:
- suffix = "-windows-64"
- }
- case MacOS:
- suffix = "-macos"
- case Linux:
- switch arch {
- case X86:
- suffix = "-linux-32"
- case Amd64:
- suffix = "-linux-64"
- case Arm:
- suffix = "-linux-arm"
- case Arm64:
- suffix = "-linux-arm64"
- case Mips64:
- suffix = "-linux-mips64"
- }
- case FreeBSD:
- switch arch {
- case X86:
- suffix = "-freebsd-32"
- case Amd64:
- suffix = "-freebsd-64"
- case Arm:
- suffix = "-freebsd-arm"
- }
- }
- return suffix
- }
|