36 lines
611 B
Go
36 lines
611 B
Go
package server
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"os/exec"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func Status(cmd *cobra.Command, args []string) {
|
|
dir := args[0]
|
|
|
|
name := getServerName(dir)
|
|
|
|
start_cmd := exec.Command("docker", "exec", name, "rcon-cli", "list")
|
|
var outb, errb bytes.Buffer
|
|
|
|
start_cmd.Stdout = &outb
|
|
start_cmd.Stderr = &errb
|
|
|
|
if err := start_cmd.Run(); err != nil {
|
|
fmt.Println("offline")
|
|
return
|
|
}
|
|
|
|
var active, max int
|
|
|
|
_, err := fmt.Sscanf(outb.String(), "There are %d of a max of %d players online:", &active, &max)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Printf("%d/%d players\n", active, max)
|
|
}
|