Fixed some minor issues with backup func added stdout to backup functions added stdout to launchserver functions changed tar execs to add verbos for stdout
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
func startStopServer(cmd string, con GoConfig) {
|
|
switch cmd {
|
|
case "start":
|
|
x := fmt.Sprintf("%s --port %d --server-settings %s --start-server %s", con.Config.ServExec, con.Config.ServPort, con.Config.ServCfg, con.Config.WorldFile)
|
|
if con.Config.UseScreen { // if screen enabled in confing.yml
|
|
fmt.Println("Starting factorio server in screen session")
|
|
startScreenCmd := exec.Command("screen", "-dmS", con.Config.ScreenName, "bash", "-c", x, "; exec sh")
|
|
startScreenCmd.Stdout = os.Stdout
|
|
startScreenCmd.Stderr = os.Stderr
|
|
err := startScreenCmd.Run()
|
|
if err != nil {
|
|
log.Fatalf("Failed to start server: %s", err)
|
|
}
|
|
} else {
|
|
startSrvCmd := exec.Command("bash", "-c", x)
|
|
startSrvCmd.Stdout = os.Stdout
|
|
startSrvCmd.Stderr = os.Stdout
|
|
startSrvCmd.Stdin = os.Stdin
|
|
err := startSrvCmd.Run()
|
|
if err != nil {
|
|
log.Fatalf("Failed to start server: %s", err)
|
|
}
|
|
}
|
|
case "stop":
|
|
quitServerCmd := exec.Command("screen", "-S", con.Config.ScreenName, "-p", "0", "-X", "stuff", "/quit\n")
|
|
err := quitServerCmd.Run()
|
|
if err != nil {
|
|
log.Fatalf("Command failed: %s, Error: %v", quitServerCmd.Args, err)
|
|
} else {
|
|
fmt.Println("Server Stopped")
|
|
}
|
|
}
|
|
}
|