12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package server
- import (
- "bufio"
- "fmt"
- "os/exec"
- "strings"
- "time"
- )
- //StartService is exported
- func (server *Handler) StartService() {
- cmdName := server.JavaPath + " -Xmx" + server.maxRAM + " -Xms" + server.minRAM + " -jar " + server.ServerJar + " nogui " + server.args
- fmt.Println(cmdName)
- cmdArgs := strings.Fields(cmdName)
- cmd := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...)
- cmd.Dir = "./server/"
- server.stdout, _ = cmd.StdoutPipe()
- server.stdin, _ = cmd.StdinPipe()
- cmd.Start()
- server.StartStdin()
- server.StartStdout()
- //cmd.Wait()
- }
- //StartStdout is exported
- func (server *Handler) StartStdout() {
- i := 0
- buf := bufio.NewReader(server.stdout)
- go func() {
- for {
- line, _, _ := buf.ReadLine()
- if string(line) != "" {
- newLog := Log{
- ID: i,
- Timestamp: time.Now(),
- Log: string(line),
- }
- server.log = append(server.log, newLog)
- i++
- }
- }
- }()
- }
- //StartStdin is exported deprecated
- func (server *Handler) StartStdin() {
- /*
- go func() {
- for {
- time.Sleep(1 * time.Second)
- fmt.Println(server.command)
- defer server.stdin.Close()
- for i, line := range server.command {
- //send command!
- io.WriteString(server.stdin, line.command+"\n")
- if len(server.command)-1 != i {
- server.command = append(server.command[:i], server.command[i+1])
- } else {
- // if it is the last item, just remove it
- server.command = server.command[:i]
- }
- }
- }
- }()
- */
- }
|