Files
mc-tool/server/new.go
2026-06-24 14:08:54 -04:00

48 lines
890 B
Go

package server
import (
"log"
"mc-tool/docker"
"os"
"path/filepath"
"github.com/spf13/cobra"
)
func New(cmd *cobra.Command, args []string) {
dir := args[0]
if err := os.Mkdir(dir, 0755); err != nil {
log.Fatal(err)
}
if err := os.Chdir(dir); err != nil {
log.Fatal(err)
}
compose := docker.NewCompose(dir)
if compose.Type != docker.VANILLA.String() {
if err := os.MkdirAll("data/mods", 0755); err != nil {
log.Fatal(err)
}
if err := os.MkdirAll("data/config", 0755); err != nil {
log.Fatal(err)
}
}
if err := os.MkdirAll("data/world", 0755); err != nil {
log.Fatal(err)
}
if err := writeFile("docker-compose.yml", compose.String()); err != nil {
log.Fatal(err)
}
}
func writeFile(path string, data string) error {
if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
return err
}
return os.WriteFile(path, []byte(data), 0644)
}