Files
mc-tool/docker/docker.go
2026-06-24 13:44:39 -04:00

68 lines
952 B
Go

package docker
import (
"fmt"
"log"
"strings"
)
type Port struct {
In string
Out string
}
type ServerType int
const (
FORGE ServerType = iota
FABRIC
NEOFORGE
VANILLA
)
func (p Port) String() string {
return fmt.Sprintf("%s:%s", p.In, p.Out)
}
func (t ServerType) String() string {
switch t {
case FORGE:
return "FORGE"
case NEOFORGE:
return "NEOFORGE"
case VANILLA:
return "VANILLA"
}
log.Panicln("unreachable")
return ""
}
func PortFromString(port string) Port {
parts := strings.Split(port, ":")
return Port{
In: parts[0],
Out: parts[1],
}
}
func PortsFromStrings(ports []string) (r []Port) {
for _, port := range ports {
r = append(r, PortFromString(port))
}
return
}
func TypeFromString(in string) ServerType {
switch in {
case "FORGE":
return FORGE
case "NEOFORGE":
return NEOFORGE
case "VANILLA":
return VANILLA
default:
log.Fatalf("unknown server type \"%s\"", in)
}
return VANILLA
}