Inital commit

This commit is contained in:
2026-06-24 13:44:39 -04:00
commit f098d5f170
15 changed files with 471 additions and 0 deletions

67
docker/docker.go Normal file
View 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
}

39
docker/docker_compose.go Normal file
View File

@@ -0,0 +1,39 @@
package docker
import (
"log"
"mc-tool/config"
"strings"
)
type Dockercompose struct {
Name string
Ports []Port
Version string
Type string
Ram string
MOTD string
RestartPolicy string
}
func NewCompose(name string) Dockercompose {
return Dockercompose{
Name: name,
Ports: PortsFromStrings(config.Cfg.Ports),
Version: config.Cfg.Version,
Type: TypeFromString(config.Cfg.Type).String(),
Ram: config.Cfg.Ram,
MOTD: config.Cfg.MOTD,
RestartPolicy: config.Cfg.RestartPolicy,
}
}
func (dc Dockercompose) String() string {
b := new(strings.Builder)
err := config.Data.DockerCompose.ExecuteTemplate(b, "compose", dc)
if err != nil {
log.Fatal(err)
}
return b.String()
}