Inital commit
This commit is contained in:
67
docker/docker.go
Normal file
67
docker/docker.go
Normal file
@@ -0,0 +1,67 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user